spoolss talloc problem
simo
idra at samba.org
Mon Aug 8 06:34:57 MDT 2011
On Mon, 2011-08-08 at 18:42 +1000, tridge at samba.org wrote:
> Hi Simo,
>
> I finally got the problem reproduced, and spent a few hours on it
> today. I eventually concluded that the problem is that the sibling
> list becomes invalid during a recursive free, and that is why finding
> the parent gives a valgrind error.
>
> The fix I'm testing at the moment is very simple:
>
> http://git.samba.org/?p=tridge/samba.git;a=commitdiff;h=d24af812d76059c2f3b917b791c77175b388811a
>
> it just ensures that a talloc chunk that is part way through being
> freed doesn't have an invalid tc->prev pointer.
>
> I'm still testing the fix, but it does seem to fix your issue. It is
> also faster than the existing code (as we no longer call the expensive
> talloc_parent_chunk() call when we don't need it).
>
> Please test.
Cool, and I have to say: I was so close ... I knew the sibling list was
faulty, too bad I couldn't create a reproducer.
Were you able to create a talloc test that reproduces the issue ?
Simo.
--
Simo Sorce
Samba Team GPL Compliance Officer <simo at samba.org>
Principal Software Engineer at Red Hat, Inc. <simo at redhat.com>
More information about the samba-technical
mailing list