tevent memory leak?

Pavel Březina pbrezina at redhat.com
Tue Feb 16 11:26:13 UTC 2016


Hi,
we are dealing with user-reported memory leak in sssd and I can see in 
talloc report that there are ~140k if struct sigaction:

     struct tevent_sig_state        contains 21149312 bytes in 139123 
blocks (ref 6) 0x7f0b97781990
         struct sigaction               contains    152 bytes in   1 
blocks (ref 0) 0x7f0b9c1d9f10
         struct sigaction               contains    152 bytes in   1 
blocks (ref 0) 0x7f0b9c195f80
         struct sigaction               contains    152 bytes in   1 
blocks (ref 0) 0x7f0b9c195e80
         struct sigaction               contains    152 bytes in   1 
blocks (ref 0) 0x7f0b9c195d80
         ...

Looking into tevent code, it comes from tevent_common_add_signal():

sig_state->oldact[signum] = talloc(sig_state, struct sigaction);
if (sig_state->oldact[signum] == NULL) {
     talloc_free(se);
     return NULL;
}

But it is nowhere freed. I would expect it to be freed in signal 
destructor after restoring the original sigaction. Is it intentional or 
a bug?



More information about the samba-technical mailing list