diff --git a/Tests/check_tiff_crashes.py b/Tests/check_tiff_crashes.py new file mode 100644 index 000000000..95c81b1bf --- /dev/null +++ b/Tests/check_tiff_crashes.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python + +# Reproductions/tests for crashes/read errors in TiffDecode.c + +# When run in python, all of these images should fail for +# one reason or another, either as a buffer overrun, +# unrecognized datastream, or truncated image file. +# There shouldn't be any segfaults. +# +# if run like +# `valgrind --tool=memcheck python check_tiff_crashes.py 2>&1 | grep TiffDecode.c` +# the output should be empty. There may be python issues +# in the valgrind especially if run in a debug python +# version. + + +from PIL import Image + +repro_read_strip = ('images/crash_1.tif', + 'images/crash_2.tif', +) + +for path in repro_read_strip: + with Image.open(path) as im: + try: + im.load() + except Exception as msg: + print(msg) diff --git a/Tests/images/crash_1.tif b/Tests/images/crash_1.tif new file mode 100644 index 000000000..230d4439a Binary files /dev/null and b/Tests/images/crash_1.tif differ diff --git a/Tests/images/crash_2.tif b/Tests/images/crash_2.tif new file mode 100644 index 000000000..26c00d0ff Binary files /dev/null and b/Tests/images/crash_2.tif differ