Re: [PATCH] don't do pointless NULL checks and casts before kfree() in security/

From: Ralph Corderoy
Date: Sun Mar 20 2005 - 08:34:11 EST



Hi Jesper,

> > Not necessarily. It helps tell the reader that the pointer may be
> > NULL at that point. This has come up before.
> >
> > http://groups-beta.google.com/group/linux.kernel/browse_thread/thread/bd3d6e5a29e43c73/7b43819f874295e8?q=ralph@xxxxxxxxxxxxxxx+persuade+lkml#7b43819f874295e8
> >
>
> I agree that
>
> if (foo->bar) {
> kfree(foo->bar);
> foo->bar = NULL;
> }
>
> makes it easy to see that foo->bar might be NULL, but I think the
> advantages of simply
>
> kfree(foo->bar);
> foo->bar = NULL;
>
> outweigh that.
>
> Having to remember that kfree(NULL) is valid shouldn't be hard, people
> should be used to that from userspace code calling free(),

Agreed.

> and if there are places where it's important to remember that the
> pointer might be NULL, then a simple comment would do, wouldn't it?
>
> kfree(foo->bar); /* kfree(NULL) is valid */

I'd rather be without the same comment littering the code.

> the short version also have the real bennefits of generating shorter
> and faster code as well as being shorter "on-screen".

Faster code? I'd have thought avoiding the function call outweighed the
overhead of checking before calling.

Cheers,


Ralph.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/