Re: Linux 2.6.9-rc2 : oops

From: Andrew Morton
Date: Mon Sep 13 2004 - 16:06:45 EST


Linus Torvalds <torvalds@xxxxxxxx> wrote:
>
> Looks like somebody is trying to free an invalid address. Sadly, your
> traceback doesn't show _who_, because it's hidden in the buffering.

yes, I doubt if we get synchronous notification of a double-free without
CONFIG_DEBUG_SLAB.

There's a known double-free in the isofs filesystem. Christian, were you
using CDROMs at the time?

> The only changes to slab itself have been by Christoph lately, I don't
> think that matters. Can you enable slab debugging? That should catch it
> much earlier..

Yup. Enable CONFIG_DEBUG_SLAB.



Invalidate this pointer so it doesn't get freed twice.

Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

25-akpm/fs/isofs/rock.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)

diff -puN fs/isofs/rock.c~rock-fix fs/isofs/rock.c
--- 25/fs/isofs/rock.c~rock-fix 2004-09-10 01:47:00.135392480 -0700
+++ 25-akpm/fs/isofs/rock.c 2004-09-10 01:47:00.139391872 -0700
@@ -62,7 +62,7 @@
}

#define MAYBE_CONTINUE(LABEL,DEV) \
- {if (buffer) kfree(buffer); \
+ {if (buffer) { kfree(buffer); buffer = NULL; } \
if (cont_extent){ \
int block, offset, offset1; \
struct buffer_head * pbh; \
_

-
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/