LWN.net Logo

Re: 9pfs double kfree

From:  Al Viro <viro-AT-ftp.linux.org.uk>
To:  Pekka Enberg <penberg-AT-cs.helsinki.fi>
Subject:  Re: 9pfs double kfree
Date:  Mon, 6 Mar 2006 08:16:51 +0000
Cc:  Dave Jones <davej-AT-redhat.com>, "David S. Miller" <davem-AT-davemloft.net>, linux-kernel-AT-vger.kernel.org, ericvh-AT-gmail.com, rminnich-AT-lanl.gov
Archive-link:  Article, Thread

On Mon, Mar 06, 2006 at 09:56:22AM +0200, Pekka Enberg wrote:
> On 3/6/06, Dave Jones <davej@redhat.com> wrote:
> > I wonder if we could get away with something as simple as..
> >
> > #define kfree(foo) \
> >         __kfree(foo); \
> >         foo = KFREE_POISON;
> >
> > ?
> 
> It's legal to call kfree() twice for NULL pointer. The above poisons
> foo unconditionally which makes that case break I think.

Legal, but rather bad taste.  Init to NULL, possibly assign the value
if kmalloc(), then kfree() unconditionally - sure, but that... almost
certainly one hell of a lousy cleanup logics somewhere.

There's worse problem with that, though:
	kfree(container_of(......));
and it simply won't compile.


(Log in to post comments)

Copyright © 2006, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds