Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 0 additions & 29 deletions Tests/check_tiff_crashes.py

This file was deleted.

Binary file removed Tests/images/crash_1.tif
Binary file not shown.
Binary file removed Tests/images/crash_2.tif
Binary file not shown.
36 changes: 36 additions & 0 deletions Tests/test_tiff_crashes.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# 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 pytest test_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.

import pytest

from PIL import Image

from .helper import on_ci


@pytest.mark.parametrize(
"test_file", ["Tests/images/crash_1.tif", "Tests/images/crash_2.tif"]
)
@pytest.mark.filterwarnings("ignore:Possibly corrupt EXIF data")
@pytest.mark.filterwarnings("ignore:Metadata warning")
def test_tiff_crashes(test_file):
try:
with Image.open(test_file) as im:
im.load()
except FileNotFoundError:
if not on_ci():
pytest.skip("test image not found")
return
raise
except OSError:
pass