From 895af77fe6ff7c73f198e852a40976ed102a49e4 Mon Sep 17 00:00:00 2001 From: Frans Kaashoek Date: Fri, 10 Apr 2015 07:15:06 -0400 Subject: check blockno passed to idestart --- ide.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'ide.c') diff --git a/ide.c b/ide.c index 96216ea..ed5a572 100644 --- a/ide.c +++ b/ide.c @@ -48,7 +48,7 @@ void ideinit(void) { int i; - + initlock(&idelock, "ide"); picenable(IRQ_IDE); ioapicenable(IRQ_IDE, ncpu - 1); @@ -73,6 +73,8 @@ idestart(struct buf *b) { if(b == 0) panic("idestart"); + if(b->blockno >= FSSIZE) + panic("incorrect blockno"); int sector_per_block = BSIZE/SECTOR_SIZE; int sector = b->blockno * sector_per_block; -- cgit v1.2.3