|
@@ -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;
|