[PATCH 1/1] determine last ext3 LBA to fix wild LBA reads - v2

Benjamin Herrenschmidt benh at kernel.crashing.org
Thu Jan 4 14:31:10 EST 2007


On Wed, 2007-01-03 at 20:11 -0600, Doug Maxey wrote:
> On Thu, 04 Jan 2007 12:09:16 +1100, Benjamin Herrenschmidt wrote:
> > >       tempb = (((unsigned long long) block) *
> > >  	      ((unsigned long long)bs)) + (unsigned long long)doff;
> > > +     if (tempb > dend) {
> > > +	  DEBUG_F("\nSeek error on block %lx, tempb=%Lx\n", block, tempb >> 9);
> > > +	  return EXT2_ET_LLSEEK_FAILED;
> > > +     }
> > > +
> > 
> > In the case where we don't pass a "part", dend is 0 no ? We should check
> > this case and not apply the test...
> 
> well, I guess we should not test in that case.  (dend && tempb >> dend)
> But that puts us back in the position of searching past the end of the 
> disk.
> 
> On what system would we get here without having found a partition table?
> Ext2 on a optical disk?

Or if you explicitely pass something like hd:0,\xxxx I suppose and it
detects it as ext2... I don't remember for sure :-)

Ben.





More information about the Linuxppc-dev mailing list