In get_contents function (fs/fat/fat.c),
There is code that checks the return value of get_fatent() at 360th line.
 
355                 /* search for consecutive clusters */
356                 while(actsize < filesize) {
357                         newclust = get_fatent(mydata, endclust);
358                         if((newclust -1)!=endclust)
359                                 goto getit;
360                         if (newclust <= 0x0001 || newclust >= 0xfff0) {
 
I think this comparison ( >= 0xfff0 ) is only for FAT16.
FAT32 value can be much larger.
Is this a bug?