FAT: get_fatent: Fix FAT boundary check

startblock must be taken into account in order not to read past the
end of the FAT.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Wolfgang Denk <wd@denx.de>
This commit is contained in:
Benoît Thébaudeau 2012-07-20 15:19:29 +02:00 committed by Wolfgang Denk
parent 9795e07b04
commit 8006dd2e57
1 changed files with 2 additions and 2 deletions

View File

@ -207,8 +207,8 @@ static __u32 get_fatent(fsdata *mydata, __u32 entry)
__u32 fatlength = mydata->fatlength;
__u32 startblock = bufnum * FATBUFBLOCKS;
if (getsize > fatlength)
getsize = fatlength;
if (startblock + getsize > fatlength)
getsize = fatlength - startblock;
fatlength *= mydata->sect_size; /* We want it in bytes now */
startblock += mydata->fat_sect; /* Offset from start of disk */