On Fri, May 25, 2012 at 11:54:40AM -0400, Simo Sorce wrote:
On Fri, 2012-05-25 at 10:17 -0400, Stephen Gallagher wrote:
> Simo noted that we changed the protocol here. We dropped 32 bits of
> padding. In order to remain compatible with existing clients, we need
> to
> put that back in, which the attached patch does. (It also corrects the
> comment describing the protocol to have it match reality).
>
> The reason we want to do this is that an upgrade and restart of SSSD
> won't change the copy of libnss_sss.so that's already loaded into
> running processes. Thus we would be breaking service lookups until
> those
> apps were restarted.
>
ACK.
Simo.
Ack++
I tested this by writing a program that called getservbyport(port,proto) in
a loop and went from unpatched SSSD to my patch and then to Stephen's patch.
After my patch was applied and SSSD restarted, the sss_nss client was
receiving "NULL" instead of "proto" in the protocol field - it was
probably hitting the padding. Then I applied Stephen's patch, restarted
SSSD and everything went back to normal.
Thanks for the explanation Simo.