Fixed freeing unallocated pointer when resizing with height too large

This commit is contained in:
Andrew Murray 2019-10-05 09:10:29 +10:00
parent bb1fc75e55
commit 511aed922a
2 changed files with 9 additions and 7 deletions

View File

@ -11,11 +11,15 @@ class TestImagingResampleVulnerability(PillowTestCase):
# see https://github.com/python-pillow/Pillow/issues/1710
def test_overflow(self):
im = hopper("L")
xsize = 0x100000008 // 4
ysize = 1000 # unimportant
with self.assertRaises(MemoryError):
# any resampling filter will do here
im.im.resize((xsize, ysize), Image.BILINEAR)
size_too_large = 0x100000008 // 4
size_normal = 1000 # unimportant
for xsize, ysize in (
(size_too_large, size_normal),
(size_normal, size_too_large),
):
with self.assertRaises(MemoryError):
# any resampling filter will do here
im.im.resize((xsize, ysize), Image.BILINEAR)
def test_invalid_size(self):
im = hopper()

View File

@ -627,8 +627,6 @@ ImagingResampleInner(Imaging imIn, int xsize, int ysize,
if ( ! ksize_vert) {
free(bounds_horiz);
free(kk_horiz);
free(bounds_vert);
free(kk_vert);
return NULL;
}