tiddyup tools/xenstore/talloc.c
PATCH 1/1 tiddyup tools/xenstore/talloc.c
Add check so that p is not operated on if context is not also null.
xenstore/talloc.c 2005-08-11 12:30:14.000000000 -0500 renamed from xenstore/talloc.c.old 2005-08-11 11:48:59.000000000 -0500 +1 -1
@@ -292,7 +292,7 @@ static int talloc_unreference(const void for (h=tc->refs;h;h=h->next) { struct talloc_chunk *p = talloc_parent_chunk(h); - if ((p==NULL && context==NULL) || p+1 == context) break; + if (p==NULL || context==NULL || p+1 == context) break; } if (h == NULL) { return -1;
Signature · 4 lines
Jerone Young IBM Linux Technology Center [email protected] 512-838-1157 (T/L: 678-1157)
Quoted 3 lines · Jerone Young
Add check so that p is not operated on if context is not also null.
Signed-off-by Jerone Young <[email protected]>
No idea on this one. I think that case is probably impossible so the test could just be simplified, but probably only tridge knows for sure. :-)
I think xenstore can probably be weaned off talloc at some point.
-- Keir
Quoted 9 lines · Keir Fraser
Quoted 3 lines · Jerone Young
Add check so that p is not operated on if context is not also null.
Signed-off-by Jerone Young <[email protected]>No idea on this one. I think that case is probably impossible so the test could just be simplified, but probably only tridge knows for sure. :-)
I agree..the case is very very very not likely but I figured I would submit the patch anyway so our tree was nice and safe ;-)
Quoted 11 lines
I think xenstore can probably be weaned off talloc at some point.
-- Keir
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel
Signature · 4 lines
Jerone Young IBM Linux Technology Center [email protected] 512-838-1157 (T/L: 678-1157)
Quoted 9 lines · Keir Fraser
Quoted 3 lines · Jerone Young
Add check so that p is not operated on if context is not also null.
Signed-off-by Jerone Young <[email protected]>No idea on this one. I think that case is probably impossible so the test could just be simplified, but probably only tridge knows for sure. :-)
Actually the code is fine: it looks for a reference to the given parent context. p + 1 cannot be NULL, since either p is NULL, or (p + 1) has at some stage been returned by _talloc(), which cannot return NULL.
Quoted 1 line
I think xenstore can probably be weaned off talloc at some point.
Heh, good luck with that! Removing the destructors and replacing them with explicit calls would not be too complicated, as the structures are all fairly simple, but you'll be chasing down memory leaks for a long time through all the failure paths.
You will have lots and lots of fun handling out-of-memory conditions, which we do at the moment although, regrettably, not everywhere: if destroy_path() fails we abort the daemon 8(.
Actually, the OOM code is ugly and I'd love to get rid of it, but I know people like these kind of checks, even if they're never 100%.
Rusty.
Signature · 1 line
A bad analogy is like a leaky screwdriver -- Richard Braakman