diff options
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/fat/fat.c | 8 | 
1 files changed, 4 insertions, 4 deletions
| diff --git a/fs/fat/fat.c b/fs/fat/fat.c index c1e57412d..49c78ed79 100644 --- a/fs/fat/fat.c +++ b/fs/fat/fat.c @@ -352,7 +352,7 @@ get_contents(fsdata *mydata, dir_entry *dentptr, __u8 *buffer,  			newclust = get_fatent(mydata, endclust);  			if((newclust -1)!=endclust)  				goto getit; -			if (newclust <= 0x0001 || newclust >= 0xfff0) { +			if (CHECK_CLUST(newclust, mydata->fatsize)) {  				FAT_DPRINT("curclust: 0x%x\n", newclust);  				FAT_DPRINT("Invalid FAT entry\n");  				return gotsize; @@ -387,7 +387,7 @@ getit:  		filesize -= actsize;  		buffer += actsize;  		curclust = get_fatent(mydata, endclust); -		if (curclust <= 0x0001 || curclust >= 0xfff0) { +		if (CHECK_CLUST(curclust, mydata->fatsize)) {  			FAT_DPRINT("curclust: 0x%x\n", curclust);  			FAT_ERROR("Invalid FAT entry\n");  			return gotsize; @@ -459,7 +459,7 @@ get_vfatname(fsdata *mydata, int curclust, __u8 *cluster,  		slotptr--;  		curclust = get_fatent(mydata, curclust); -		if (curclust <= 0x0001 || curclust >= 0xfff0) { +		if (CHECK_CLUST(curclust, mydata->fatsize)) {  			FAT_DPRINT("curclust: 0x%x\n", curclust);  			FAT_ERROR("Invalid FAT entry\n");  			return -1; @@ -652,7 +652,7 @@ static dir_entry *get_dentfromdir (fsdata * mydata, int startsect,  	    return retdent;  	}  	curclust = get_fatent (mydata, curclust); -	if (curclust <= 0x0001 || curclust >= 0xfff0) { +	if (CHECK_CLUST(curclust, mydata->fatsize)) {  	    FAT_DPRINT ("curclust: 0x%x\n", curclust);  	    FAT_ERROR ("Invalid FAT entry\n");  	    return NULL; |