tests for Fli OOB reads

This commit is contained in:
Eric Soroos 2020-03-05 10:13:10 +00:00 committed by Hugo
parent 8d4f3c0c5f
commit 19ff42bd68
48 changed files with 71 additions and 0 deletions

61
Tests/check_fli_oob.py Normal file
View File

@ -0,0 +1,61 @@
#!/usr/bin/env python
from PIL import Image
repro_ss2 = ('images/fli_oob/06r/06r00.fli',
'images/fli_oob/06r/others/06r01.fli',
'images/fli_oob/06r/others/06r02.fli',
'images/fli_oob/06r/others/06r03.fli',
'images/fli_oob/06r/others/06r04.fli'
)
repro_lc = ('images/fli_oob/05r/05r00.fli',
'images/fli_oob/05r/others/05r03.fli',
'images/fli_oob/05r/others/05r06.fli',
'images/fli_oob/05r/others/05r05.fli',
'images/fli_oob/05r/others/05r01.fli',
'images/fli_oob/05r/others/05r04.fli',
'images/fli_oob/05r/others/05r02.fli',
'images/fli_oob/05r/others/05r07.fli',
)
repro_advance = ('images/fli_oob/03r/03r00.fli',
'images/fli_oob/03r/others/03r01.fli',
'images/fli_oob/03r/others/03r09.fli',
'images/fli_oob/03r/others/03r11.fli',
'images/fli_oob/03r/others/03r05.fli',
'images/fli_oob/03r/others/03r10.fli',
'images/fli_oob/03r/others/03r06.fli',
'images/fli_oob/03r/others/03r08.fli',
'images/fli_oob/03r/others/03r03.fli',
'images/fli_oob/03r/others/03r07.fli',
'images/fli_oob/03r/others/03r02.fli',
'images/fli_oob/03r/others/03r04.fli',
)
repro_brun = ('images/fli_oob/04r/initial.fli',
'images/fli_oob/04r/others/04r02.fli',
'images/fli_oob/04r/others/04r05.fli',
'images/fli_oob/04r/others/04r04.fli',
'images/fli_oob/04r/others/04r03.fli',
'images/fli_oob/04r/others/04r01.fli',
'images/fli_oob/04r/04r00.fli',
)
repro_copy = ('images/fli_oob/02r/others/02r02.fli',
'images/fli_oob/02r/others/02r04.fli',
'images/fli_oob/02r/others/02r03.fli',
'images/fli_oob/02r/others/02r01.fli',
'images/fli_oob/02r/02r00.fli',
)
for path in repro_ss2 + repro_lc + repro_advance + repro_brun + repro_copy:
im = Image.open(path)
try:
im.load()
except Exception as msg:
print(msg)

Binary file not shown.

View File

@ -0,0 +1 @@
Is this because a file-originating field is being interpreted as a *signed* int32, allowing it to provide negative values for 'advance'?

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
Image.open(...).seek(212)

Binary file not shown.

View File

@ -0,0 +1 @@
ridiculous bytes value passed to ImagingFliDecode

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
im = Image.open(d); im.seek(0); im.getdata()

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
failure to check input buffer (`data`) boundaries in BRUN chunk

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
im = Image.open(d); im.seek(0); im.getdata()

Binary file not shown.

View File

@ -0,0 +1 @@
failure to check input buffer (`data`) boundaries in LC chunk

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
im = Image.open(d); im.seek(0); im.getdata()

Binary file not shown.

View File

@ -0,0 +1 @@
failure to check input buffer (`data`) boundaries in SS2 chunk

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
im = Image.open(d); im.seek(0); im.getdata()