Messages in this thread | | | Date | Mon, 6 Mar 2006 09:34:01 +0000 | From | Al Viro <> | Subject | Re: 9pfs double kfree |
| |
On Mon, Mar 06, 2006 at 10:40:03AM +0200, Kai Makisara wrote: > > 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. > > > I agree with you. > > However, a few months ago it was advocated to let kfree take care of > testing the pointer against NULL and a load of patches like this:
That's different - that's _exactly_ the case I've mentioned above.
Moreover, that's exact match to standard behaviour of free(3):
C99 7.20.3.2(2): The free function causes the space pointed to by ptr to be deallocated, that is, made available for further allocation. If ptr is a null pointer, no action occurs. Otherwise, if the argument does not match a pointer returned by the calloc, malloc, or realloc function, or if the space has been deallocated by a call to free or realloc, the behaviour is undefined.
IOW, free(NULL) is guaranteed to be no-op while double-free is nasal daemon country. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |