[Samba] ctdb error after upgrade to 4.12.10
Jeremy Allison
jra at samba.org
Tue Nov 10 18:03:19 UTC 2020
On Tue, Nov 10, 2020 at 09:58:36AM -0800, Jeremy Allison via samba wrote:
> On Tue, Nov 10, 2020 at 06:20:45PM +0100, Günther Deschner wrote:
> > Hi Jeremy,
> >
> > I'm afraid this is indeed caused by the talloc tidyup as one can perfectly
> > reproduce it wih the following patch for smbtorture (call bin/smbtorture
> > ncacn_np:lo local.file.file_lines_parse). I guess we need to set up some
> > warning signs around file_lines_parse() expressing that it takes talloced
> > content and that one should not free the separated lines array separately.
>
> Dammit, I'm *so sorry* for that mistake. I looked quickly
> at file_lines_parse() and saw it do the:
>
> ret = talloc_zero_array(mem_ctx, char *, i+2);
>
> but then missed the:
>
> talloc_steal(ret, p);
>
> below. That's a *horrible* internal API to
> expose to callers.
Yes, this:
"'p' will be freed on error, and otherwise will be made a child of the returned array"
char **file_lines_parse(char *p, size_t size, int *numlines, TALLOC_CTX *mem_ctx)
is what I missed :-(. God, that's a *horrible* API
side-effect and completely unintuitive :-(.
Thanks *SO* much for adding a test for that.
Do you want to propose an MR with this test
and the additional fix for vfs_glusterfs
and I'll RB+ and push.
Sorry once again.
More information about the samba
mailing list