1. Philippe Lagadec
  2. OleFileIO_PL
  3. Issues


Issue #1 closed

bug with csectFat=1

Philippe Lagadec
repo owner created an issue

Bug reported by Martijn:

I found a rather odd file where the FAT sectors after the header look like:

len(sect)=436, so 109 integers

index 0 1 2 3 4 5 6 7



OleFileIO_PL breaks because it can't read sector 0xFFFF. However, this file is (in a sense) valid because csectFat in the header says 2 so it shouldn't even try reading sector number 3.

I can't find in the specification that the remaining values must be 0xFFFFFFFF, though I suppose you could make a warning for it.

Ok, here is the debug output. I can't send the original file unfortunately, but with a bit of hex editing I got the attached file. The basic idea is that cSectFat = 1, so it doesn't matter that the second entry is invalid. I don't know how the original file got like this, it's not reproducible. Patch is attached. In theory you could produce a warning in these cases instead, but as long as it's not fatal you can properly read the rest of the file.

[see debug.txt]