winbind_nss_aix.c: Cannot set process credentials

tridge at samba.org tridge at samba.org
Mon Feb 26 03:51:13 GMT 2007


Jerry,

 > Thanks for the links.  I'm not entirely sure if what I did
 > technically correct.

I can't see a patch/commit from you on this - did I miss it? I'd be
happy to look at it if you send it my way. (although I might have to
scrounge around for an AIX box to test on).

 > The docs on the LAM interface are
 > really thin. :-\

yep, the docs are by no means complete. They are particularly bad on
how memory allocation is supposed to work. I found that even within
the modules supplied with AIX there are differences in how memory
is handled (eg. the LDAP and core uess modules). That is part of what
uess_leak.c demonstrates - you get different results for a ldap user
and a local user.

 >  What finally worked was to set the
 > normal attributes like "id" in the getattrlist() method.

that's strange - I was under the impression that method_attrlist
should only return "extra" attributes (which is why I only put "SID"
in there). 

 > But once I started returning multiple attreibuets in the
 > returned array, I was getting segfaults I think from how
 > the memory was being allocated.

I'd need to see the patch I think

 > The main question I have is why is the returned memory
 > chunk allocated as one buffer instead of the pointer array
 > and a malloc() for each attrval_t struct ?

nss_ldap does it the same way. I'm not sure if I got the idea from
nss_ldap or if I did tests against the standard AIX modules.

If I did get it from nss_ldap, then it would be worth writing a test
that loaded a standard AIX module (say the ldap module) and called the
method_attrlist then checked to see if the returned memory is one
chunk or not (just from the pointer values).

Cheers, Tridge


More information about the samba-technical mailing list