mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-12-26 01:46:18 +03:00
Merge pull request #782 from wiredfool/32bit_decompression
32bit mult overflow fix
This commit is contained in:
commit
3ad62fa7fc
7
Tests/32bit_segfault_test.py
Normal file
7
Tests/32bit_segfault_test.py
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
from PIL import Image
|
||||||
|
|
||||||
|
im = Image.new('L', (999999, 999999), 0)
|
||||||
|
|
||||||
|
|
|
@ -69,4 +69,6 @@
|
||||||
#define FLOAT32 float
|
#define FLOAT32 float
|
||||||
#define FLOAT64 double
|
#define FLOAT64 double
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
typedef signed __int64 int64_t;
|
||||||
|
#endif
|
||||||
|
|
|
@ -379,7 +379,7 @@ ImagingNew(const char* mode, int xsize, int ysize)
|
||||||
} else
|
} else
|
||||||
bytes = strlen(mode); /* close enough */
|
bytes = strlen(mode); /* close enough */
|
||||||
|
|
||||||
if ((Py_ssize_t) xsize * ysize * bytes <= THRESHOLD) {
|
if ((int64_t) xsize * (int64_t) ysize * bytes <= THRESHOLD) {
|
||||||
im = ImagingNewBlock(mode, xsize, ysize);
|
im = ImagingNewBlock(mode, xsize, ysize);
|
||||||
if (im)
|
if (im)
|
||||||
return im;
|
return im;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user