Tested fix for #2051 and seem to work.
However it just occurred to me we may always want to check if pwd.pw_gid
is listed in the gids returned and add it if not ?
Simo Sorce * Red Hat, Inc * New York
Patches 1-4 and 9:
These patches use the SAFEALIGN macros where it is appropriate. I split
them into several patches for easier review, so that client code changes
are not mixed with the rest of the code and changes that are a little
different than the rest have their own patch.
Here I think it is not needed to use uint8_t* or char*. We cast the
pointer anyway and there are no real alignment issues (the memory is
aligned properly). I was thinking about suppressing the warnings with
#pragma here, but in this particular situation it is IMO better to have
These were all false positive warnings. It is possible to suppress them
with additional casting but I found it less readable so I used #pragma.
We had improperly aligned part of a buffer used in client code. Also
some code blocks here must rely on fact that the buffer they get is
aligned properly (they can do nothing about it if it isn't). In these
cases it is better to silence the warnings, so that it does not make
permanent noise during compilation.
the attached patch was tested by a customer running RHEL6. I'm not sure
if we should do any more checking when running on a modern system where
ranges can be better defined on the IPA side for example?
the attached patch should uses the SAFEALIGN macros to access data in
the packet header (in sss_packet structure) so that it does not depend
on proper memory alignment (currently the alignment is OK, but if we add
something to the packet header later, it is probably safer not to depend
on proper alignment). It also silences a lot of alignment warnings.