2005-04-09 01:38:37

by Jesper Juhl

[permalink] [raw]
Subject: [PATCH] make mempool_destroy resilient against NULL pointers.


General rule (as I understand it) is that functions that free resources
should handle being passed NULL pointers - mempool_destroy() will
currently explode if passed a NULL pointer, the patch below makes it safe
to pass it NULL.

Signed-off-by: Jesper Juhl <[email protected]>
---

mempool.c | 2 ++
1 files changed, 2 insertions(+)


--- linux-2.6.12-rc2-mm2-orig/mm/mempool.c 2005-04-05 21:21:56.000000000 +0200
+++ linux-2.6.12-rc2-mm2/mm/mempool.c 2005-04-09 03:33:58.000000000 +0200
@@ -176,6 +176,8 @@ EXPORT_SYMBOL(mempool_resize);
*/
void mempool_destroy(mempool_t *pool)
{
+ if (!pool)
+ return;
if (pool->curr_nr != pool->min_nr)
BUG(); /* There were outstanding elements */
free_pool(pool);



2005-04-09 01:41:51

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] make mempool_destroy resilient against NULL pointers.

Jesper Juhl <[email protected]> wrote:
>
>
> General rule (as I understand it) is that functions that free resources
> should handle being passed NULL pointers - mempool_destroy() will
> currently explode if passed a NULL pointer, the patch below makes it safe
> to pass it NULL.

The best response to mempool_destroy(0) is an oops. There's no legitimate
reason for doing it.

2005-04-09 01:43:46

by Jesper Juhl

[permalink] [raw]
Subject: Re: [PATCH] make mempool_destroy resilient against NULL pointers.

On Fri, 8 Apr 2005, Andrew Morton wrote:

> Jesper Juhl <[email protected]> wrote:
> >
> >
> > General rule (as I understand it) is that functions that free resources
> > should handle being passed NULL pointers - mempool_destroy() will
> > currently explode if passed a NULL pointer, the patch below makes it safe
> > to pass it NULL.
>
> The best response to mempool_destroy(0) is an oops. There's no legitimate
> reason for doing it.
>
Ok, ignore the patch then.

--
Jesper


2005-04-24 01:29:45

by Jesper Juhl

[permalink] [raw]
Subject: Re: [PATCH] make mempool_destroy resilient against NULL pointers.

On Fri, 8 Apr 2005, Andrew Morton wrote:

> Jesper Juhl <[email protected]> wrote:
> >
> >
> > General rule (as I understand it) is that functions that free resources
> > should handle being passed NULL pointers - mempool_destroy() will
> > currently explode if passed a NULL pointer, the patch below makes it safe
> > to pass it NULL.
>
> The best response to mempool_destroy(0) is an oops. There's no legitimate
> reason for doing it.
>
Sorry to bring this up again but, take a look at the patch by
[email protected] titled "[PATCH] aoe 5/12: don't try to free null
bufpool" http://grmso.net:8090/commit/03347936afcba990525736ae39daa13f643eac5f/diff/fa83c2ddd4293bd8bcaeeaf14bfdbf2fbe810420/
That's exactely the reason why the patch I submitted should be applied, to
avoid having to do such checks all over the place in other code and
instead just do it in one location. With this patch in place, the patch to
aoedev.c would not have been needed.

Or am I still misunderstanding something.

--
Jesper