talloc-2.1.12 issues with library destructor

Jeremy Allison jra at samba.org
Mon Mar 26 17:19:41 UTC 2018


On Mon, Mar 26, 2018 at 10:16:50AM -0700, Jeremy Allison via samba-technical wrote:
> On Mon, Mar 26, 2018 at 05:00:15PM +0200, Lukas Slebodnik via samba-technical wrote:
> > On (26/03/18 16:06), Ralph Böhme wrote:
> > >Hi Andreas,
> > >
> > >On Mon, Mar 26, 2018 at 03:01:56PM +0200, Andreas Schneider via samba-technical wrote:
> > >> destructors are normally executed after the program returns from main() or 
> > >> after exit() is called. talloc tries to clean up its null context memory and 
> > >> you have obviously a talloc destructor defined for your kcm_data talloc 
> > >> context!
> > >> 
> > >> I don't thinks this is an issue in talloc, but sssd should cleanup the memory 
> > >> in orderly_shutdown() before it calls exit()!
> > >
> > 
> > SSSD allocated memory on context returned by talloc_autofree_context.
> > And I assume it was used due to following parts in documentation
> > 
> > """
> >  * @brief Provide a talloc context that is freed at program exit.
> >  *
> >  * This is a handy utility function that returns a talloc context
> >  * which will be automatically freed on program exit. This can be used
> >  * to reduce the noise in memory leak reports.
> > """
> > 
> > And it is not clear which library destructor will be called
> > before talloc. Therefore it might be difficult to rely on talloc_destructors
> > releasing properly data allocated under autofree_context.
> > 
> > Sure, sssd can release memory before calling exit e.g.
> >       talloc_free(talloc_autofree_context());
> > But then we loose an advantage of relying on automatic release
> > provided by talloc_autofree_context.
> 
> Do not use talloc_autofree_context. It's addition to talloc
> was a *big* API mistake, and I'm trying to remove it from
> Samba in call cases.
           ^all^ cases of course.

If you look at current master Samba, do:

$ git grep talloc_autofree_context

- the output should be very illuminating.



More information about the samba-technical mailing list