Re: 9pfs double kfree
[Posted March 6, 2006 by corbet]
| 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)