On Mon, 2012-02-13 at 15:14 +0100, Jakub Hrozek wrote:
The attached two patches fix
https://fedorahosted.org/sssd/ticket/1189
that was mostly manifested by ""BUG: a callback did not free its
request." during enumeration (and reading of the autofs map).
[PATCH 1/2] Remove setent structure when callback is called
The setent_remove_ref() destructor was only changing the ->head variable
local to the entry being destroyed. This doesn't work properly when the
entry is the head, the head needs to be set to NULL.
The patch also changes two unrelated places where we were using the
low-level setent_notify_done() instead of the nss-specific
nss_setent_notify_done() and removes one unused function.
[PATCH 2/2] Allocate setent structure on state, not on the client context
Inside the _send() functions that use the setent contexts, we should
allocate the setent structure on state, not on the client context. Mostly
because the callbacks attached to tevent_req should also free the setent
structures after they receive data.
The services code already does this correctly.
There's also one unrelated fix for a wrong string format variable.
Ack to both for master and sssd-1-8. Good work sorting that out!