talloc_free_children in samba4 talloc?

Volker Lendecke Volker.Lendecke at SerNet.DE
Tue Apr 26 03:26:41 GMT 2005


On Tue, Apr 26, 2005 at 01:19:18PM +1000, Andrew Tridgell wrote:
> before adding this, I think it is worthwhile seeing if we can't just
> get rid of talloc_destroy_pool(). For example, in the rpc code I think
> we could do this:
> 
> void free_pipe_context(pipes_struct *p)
> {
> 	talloc_free(p->mem_ctx);
> 	p->mem_ctx = talloc_init("pipe %s %p", p->name, p);
> 	if (p->mem_ctx == NULL) {
> 		p->fault_state = True;
> 	}
> }
> 
> totally untested code, but I think it does what is intended, and
> should not require changing the way that the Samba3 rpc code works.

Done this, segfaults. 

        prs_init(&p->out_data.rdata, 0, p->mem_ctx, MARSHALL);

in line 366 transfers the pointer to p->mem_ctx into the output parse struct.
This is not touched anymore after that. Adding

p->in_data.data->mem_ctx=p->mem_ctx;
p->out_data.rdata->mem_ctx=p->mem_ctx;

to free_pipe_context above fixes this particular one, but browsing through
rpc_parse/* and rpc_server/* gives far too many references to p->mem_ctx to be
certain enough we don't have this problem in more than these two places.

Volker
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.samba.org/archive/samba-technical/attachments/20050426/0fec2fc6/attachment.bin


More information about the samba-technical mailing list