On Wed, 23 May 2007 23:05:24 +0200
Michal Piotrowski <[EMAIL PROTECTED]> wrote:

> Christoph Lameter napisa__(a):
> > On Wed, 23 May 2007, Michal Piotrowski wrote:
> > 
> >> Christoph, this looks like a bug in SLUB.
> > 
> > Please boot with slub_debug to find the bad code that overwrites a slab 
> > object after it was freed.
> > 
> > 
> 
> [   19.096577] Real Time Clock Driver v1.12ac
> [   21.650315] *** SLUB kmalloc-8: Redzone [EMAIL PROTECTED] slab 0xc528c530
> [   21.657365]     offset=3360 flags=0x400000c3 inuse=61 freelist=0xc90f6d58
> [   21.664349]   Bytes b4 0xc90f6d10:  00 00 00 00 00 00 00 00 5a 5a 5a 5a 5a 
> 5a 5a 5a ........ZZZZZZZZ
> [   21.674305]     Object 0xc90f6d20:  31 30 31 39 2e 30 30 35                
>          1019.005        
> [   21.684259]    Redzone 0xc90f6d28:  00 cc cc cc                            
>          .______            
> [   21.694265] FreePointer 0xc90f6d2c -> 0xc90f6d58
> [   21.699061] Last alloc: get_modalias+0x61/0xf5 jiffies_ago=53 cpu=1 pid=554
> [   21.706362]     Filler 0xc90f6d50:  5a 5a 5a 5a 5a 5a 5a 5a                
>          ZZZZZZZZ        

argh, I never 100% understood the slab gobbledygook, and now we have slub
gobbledygook.  I _hope_ what that's saying is that the 00 at 0xc90f6d28
wasn't supposed to be there.

Obvious bug:

--- a/drivers/firmware/dmi-id.c~a
+++ a/drivers/firmware/dmi-id.c
@@ -94,7 +94,7 @@ static ssize_t get_modalias(char *buffer
                if (!c)
                        continue;
 
-               t = kmalloc(strlen(c), GFP_KERNEL);
+               t = kmalloc(strlen(c) + 1, GFP_KERNEL);
                if (!t)
                        break;
                ascii_filter(t, c);
_


> Here is another one

Same deal.

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

Reply via email to