lkml.org 
[lkml]   [2002]   [Apr]   [16]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateMon, 15 Apr 2002 22:31:33 -0700
From"David C. Hansen" <>
SubjectRe: OOPS caused by ext2 changes
Andrew Morton wrote:

>Dave Hansen wrote:
>
>>Andrew Morton and I discused this earlier.  I have some more information
>>now.  The problem: "dbench 64" run on a small (~120meg) partition with
>>1k block sizes produces Oopses.
>>
>>This changeset:
>>http://linus.bkbits.net:8080/linux-2.5/patch@1.248.2.6?nav=index.html|ChangeSet|cset@1.248.2.6
>>is the culprit.  Without it applied, none of this happens.
>>
>However it seems that there's potential for a buffer reference
>leak in ext2_get_branch:
>
>See, sb_bread() bumps b_count, but on the `goto changed;'
>branch we lose track of that buffer.
>
>b_count is only 16 bits, so it's conceivable that the
>count wraps to zero, and that is fatal.
>
>It would be interesting to replace that `goto changed;' 
>with { __brelse(bh); goto changed; }.  Plus maybe a
>debug printk to see if we are indeed hitting that path.
>
Well, I'm a little bit clearer about what's going on now.  I noticed 
that verify_chain() is inline, and that is what is actually Oopsing. 
 Any idea how we're getting 8 into edx?  

edx: 00000008
Code;  c013dea4 <__brelse+4/20>   <=====
   0:   8b 42 14                  mov    0x14(%edx),%eax   <=====
Is the Indirect array getting junk into it?

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

\
 
 \ /
  Last update: 2005-03-22 12:25    [from the cache]
©2003-2008