author | Rich Burridge <rich.burridge@oracle.com> |
Mon, 21 Nov 2016 13:24:12 -0800 | |
changeset 7369 | a206d468357a |
permissions | -rw-r--r-- |
7369
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
1 |
For CVE-2016-9189 |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
2 |
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-9189 |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
3 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
4 |
Python Imaging allows context-dependent attackers to obtain sensitive |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
5 |
information by using the "crafted image file" approach, related to an |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
6 |
"Integer Overflow" issue affecting the Image.core.map_buffer in map.c |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
7 |
component. |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
8 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
9 |
Code changes based on those found upstream for Pillow at: |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
10 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
11 |
https://github.com/python-pillow/Pillow/pull/2146/commits/c50ebe6459a131a1ea8ca531f10da616d3ceaa0f |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
12 |
for: |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
13 |
map.c |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
14 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
15 |
https://github.com/python-pillow/Pillow/pull/2146/commits/445451c0b9347b50e0f603db33f196e207de470d |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
16 |
for: |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
17 |
PIL/Image.py |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
18 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
19 |
https://github.com/python-pillow/Pillow/pull/2146/commits/1a43da7a8bda884a597f3a1623364f4719d21c14 |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
20 |
for: |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
21 |
PIL/EpsImagePlugin.py |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
22 |
PIL/IptcImagePlugin.py |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
23 |
PIL/JPegImagePlugin.py |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
24 |
PIL/PpmImagePlugin.py |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
25 |
_imaging.c |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
26 |
libImaging/File.c |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
27 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
28 |
--- Imaging-1.1.7/map.c.orig 2016-11-21 07:50:42.925380355 +0000 |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
29 |
+++ Imaging-1.1.7/map.c 2016-11-21 07:53:34.182039527 +0000 |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
30 |
@@ -339,8 +339,18 @@ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
31 |
stride = xsize * 4; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
32 |
} |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
33 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
34 |
+ if (ysize > INT_MAX / stride) { |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
35 |
+ PyErr_SetString(PyExc_MemoryError, "Integer overflow in ysize"); |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
36 |
+ return NULL; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
37 |
+ } |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
38 |
+ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
39 |
size = ysize * stride; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
40 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
41 |
+ if (offset > SIZE_MAX - size) { |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
42 |
+ PyErr_SetString(PyExc_MemoryError, "Integer overflow in offset"); |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
43 |
+ return NULL; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
44 |
+ } |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
45 |
+ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
46 |
/* check buffer size */ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
47 |
bytes = PyImaging_ReadBuffer(target, (const void**) &ptr); |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
48 |
if (bytes < 0) { |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
49 |
--- Imaging-1.1.7/PIL/Image.py.orig 2016-11-21 07:58:09.978008218 +0000 |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
50 |
+++ Imaging-1.1.7/PIL/Image.py 2016-11-21 08:02:12.063288055 +0000 |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
51 |
@@ -1740,6 +1740,25 @@ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
52 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
53 |
return Image()._new(core.wedge("L")) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
54 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
55 |
+ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
56 |
+def _check_size(size): |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
57 |
+ """ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
58 |
+ Common check to enforce type and sanity check on size tuples |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
59 |
+ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
60 |
+ :param size: Should be a 2 tuple of (width, height) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
61 |
+ :returns: True, or raises a ValueError |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
62 |
+ """ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
63 |
+ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
64 |
+ if not isinstance(size, tuple): |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
65 |
+ raise ValueError("Size must be a tuple") |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
66 |
+ if len(size) != 2: |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
67 |
+ raise ValueError("Size must be a tuple of length 2") |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
68 |
+ if size[0] <= 0 or size[1] <= 0: |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
69 |
+ raise ValueError("Width and Height must be > 0") |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
70 |
+ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
71 |
+ return True |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
72 |
+ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
73 |
+ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
74 |
## |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
75 |
# Creates a new image with the given mode and size. |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
76 |
# |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
77 |
@@ -1756,6 +1775,8 @@ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
78 |
def new(mode, size, color=0): |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
79 |
"Create a new image" |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
80 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
81 |
+ _check_size(size) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
82 |
+ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
83 |
if color is None: |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
84 |
# don't initialize |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
85 |
return Image()._new(core.new(mode, size)) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
86 |
@@ -1792,6 +1813,8 @@ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
87 |
def fromstring(mode, size, data, decoder_name="raw", *args): |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
88 |
"Load image from string" |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
89 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
90 |
+ _check_size(size) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
91 |
+ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
92 |
# may pass tuple instead of argument list |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
93 |
if len(args) == 1 and isTupleType(args[0]): |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
94 |
args = args[0] |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
95 |
@@ -1839,6 +1862,8 @@ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
96 |
def frombuffer(mode, size, data, decoder_name="raw", *args): |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
97 |
"Load image from string or buffer" |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
98 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
99 |
+ _check_size(size) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
100 |
+ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
101 |
# may pass tuple instead of argument list |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
102 |
if len(args) == 1 and isTupleType(args[0]): |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
103 |
args = args[0] |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
104 |
--- Imaging-1.1.7/PIL/EpsImagePlugin.py.orig 2016-11-21 08:07:25.697709727 +0000 |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
105 |
+++ Imaging-1.1.7/PIL/EpsImagePlugin.py 2016-11-21 08:12:17.177879463 +0000 |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
106 |
@@ -74,12 +74,13 @@ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
107 |
status = gs.close() |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
108 |
if status: |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
109 |
raise IOError("gs failed (status %d)" % status) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
110 |
- im = Image.core.open_ppm(file) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
111 |
+ im = Image.open(outfile) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
112 |
+ im.load() |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
113 |
finally: |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
114 |
try: os.unlink(file) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
115 |
except: pass |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
116 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
117 |
- return im |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
118 |
+ return im.im.copy() |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
119 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
120 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
121 |
class PSFile: |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
122 |
--- Imaging-1.1.7/PIL/IptcImagePlugin.py.orig 2016-11-21 08:07:25.704128117 +0000 |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
123 |
+++ Imaging-1.1.7/PIL/IptcImagePlugin.py 2016-11-21 08:14:00.062399442 +0000 |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
124 |
@@ -192,14 +192,9 @@ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
125 |
o.close() |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
126 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
127 |
try: |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
128 |
- try: |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
129 |
- # fast |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
130 |
- self.im = Image.core.open_ppm(outfile) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
131 |
- except: |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
132 |
- # slightly slower |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
133 |
- im = Image.open(outfile) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
134 |
- im.load() |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
135 |
- self.im = im.im |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
136 |
+ _im = Image.open(outfile) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
137 |
+ _im.load() |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
138 |
+ self.im = _im.im |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
139 |
finally: |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
140 |
try: os.unlink(outfile) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
141 |
except: pass |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
142 |
--- Imaging-1.1.7/PIL/JpegImagePlugin.py.orig 2016-11-21 08:16:20.362838015 +0000 |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
143 |
+++ Imaging-1.1.7/PIL/JpegImagePlugin.py 2016-11-21 08:19:06.852441772 +0000 |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
144 |
@@ -352,7 +352,9 @@ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
145 |
raise ValueError("Invalid Filename") |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
146 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
147 |
try: |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
148 |
- self.im = Image.core.open_ppm(path) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
149 |
+ _im = Image.open(path) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
150 |
+ _im.load() |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
151 |
+ self.im = _im.im |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
152 |
finally: |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
153 |
try: os.unlink(path) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
154 |
except: pass |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
155 |
--- Imaging-1.1.7/PIL/PpmImagePlugin.py.orig 2016-11-21 08:07:25.708512595 +0000 |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
156 |
+++ Imaging-1.1.7/PIL/PpmImagePlugin.py 2016-11-21 08:19:55.525463844 +0000 |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
157 |
@@ -93,11 +93,6 @@ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
158 |
self.fp.tell(), |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
159 |
(rawmode, 0, 1))] |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
160 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
161 |
- # ALTERNATIVE: load via builtin debug function |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
162 |
- # self.im = Image.core.open_ppm(self.filename) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
163 |
- # self.mode = self.im.mode |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
164 |
- # self.size = self.im.size |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
165 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
166 |
# |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
167 |
# -------------------------------------------------------------------- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
168 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
169 |
--- Imaging-1.1.7/_imaging.c.orig 2016-11-21 08:07:25.710428542 +0000 |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
170 |
+++ Imaging-1.1.7/_imaging.c 2016-11-21 08:21:03.690730505 +0000 |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
171 |
@@ -684,17 +684,6 @@ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
172 |
} |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
173 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
174 |
static PyObject* |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
175 |
-_open_ppm(PyObject* self, PyObject* args) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
176 |
-{ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
177 |
- char* filename; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
178 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
179 |
- if (!PyArg_ParseTuple(args, "s", &filename)) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
180 |
- return NULL; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
181 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
182 |
- return PyImagingNew(ImagingOpenPPM(filename)); |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
183 |
-} |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
184 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
185 |
-static PyObject* |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
186 |
_blend(ImagingObject* self, PyObject* args) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
187 |
{ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
188 |
ImagingObject* imagep1; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
189 |
@@ -3215,9 +3204,6 @@ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
190 |
{"crc32", (PyCFunction)_crc32, 1}, |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
191 |
{"getcodecstatus", (PyCFunction)_getcodecstatus, 1}, |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
192 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
193 |
- /* Debugging stuff */ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
194 |
- {"open_ppm", (PyCFunction)_open_ppm, 1}, |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
195 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
196 |
/* Special effects (experimental) */ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
197 |
#ifdef WITH_EFFECTS |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
198 |
{"effect_mandelbrot", (PyCFunction)_effect_mandelbrot, 1}, |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
199 |
--- Imaging-1.1.7/libImaging/File.c.orig 2016-11-21 08:07:25.712276651 +0000 |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
200 |
+++ Imaging-1.1.7/libImaging/File.c 2016-11-21 08:22:37.837774950 +0000 |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
201 |
@@ -20,116 +20,6 @@ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
202 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
203 |
#include <ctype.h> |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
204 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
205 |
-Imaging |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
206 |
-ImagingOpenPPM(const char* infile) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
207 |
-{ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
208 |
- FILE* fp; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
209 |
- int i, c, v; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
210 |
- char* mode; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
211 |
- int x, y, max; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
212 |
- Imaging im; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
213 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
214 |
- if (!infile) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
215 |
- return ImagingError_ValueError(NULL); |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
216 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
217 |
- fp = fopen(infile, "rb"); |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
218 |
- if (!fp) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
219 |
- return ImagingError_IOError(); |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
220 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
221 |
- /* PPM magic */ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
222 |
- if (fgetc(fp) != 'P') |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
223 |
- goto error; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
224 |
- switch (fgetc(fp)) { |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
225 |
- case '4': /* FIXME: 1-bit images are not yet supported */ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
226 |
- goto error; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
227 |
- case '5': |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
228 |
- mode = "L"; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
229 |
- break; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
230 |
- case '6': |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
231 |
- mode = "RGB"; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
232 |
- break; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
233 |
- default: |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
234 |
- goto error; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
235 |
- } |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
236 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
237 |
- i = 0; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
238 |
- c = fgetc(fp); |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
239 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
240 |
- x = y = max = 0; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
241 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
242 |
- while (i < 3) { |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
243 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
244 |
- /* Ignore optional comment fields */ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
245 |
- while (c == '\n') { |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
246 |
- c = fgetc(fp); |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
247 |
- if (c == '#') { |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
248 |
- do { |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
249 |
- c = fgetc(fp); |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
250 |
- if (c == EOF) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
251 |
- goto error; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
252 |
- } while (c != '\n'); |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
253 |
- c = fgetc(fp); |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
254 |
- } |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
255 |
- } |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
256 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
257 |
- /* Skip forward to next value */ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
258 |
- while (isspace(c)) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
259 |
- c = fgetc(fp); |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
260 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
261 |
- /* And parse it */ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
262 |
- v = 0; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
263 |
- while (isdigit(c)) { |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
264 |
- v = v * 10 + (c - '0'); |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
265 |
- c = fgetc(fp); |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
266 |
- } |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
267 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
268 |
- if (c == EOF) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
269 |
- goto error; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
270 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
271 |
- switch (i++) { |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
272 |
- case 0: |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
273 |
- x = v; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
274 |
- break; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
275 |
- case 1: |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
276 |
- y = v; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
277 |
- break; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
278 |
- case 2: |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
279 |
- max = v; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
280 |
- break; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
281 |
- } |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
282 |
- } |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
283 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
284 |
- im = ImagingNew(mode, x, y); |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
285 |
- if (!im) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
286 |
- return NULL; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
287 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
288 |
- /* if (max != 255) ... FIXME: does anyone ever use this feature? */ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
289 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
290 |
- if (strcmp(im->mode, "L") == 0) { |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
291 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
292 |
- /* PPM "L" */ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
293 |
- for (y = 0; y < im->ysize; y++) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
294 |
- if (fread(im->image[y], im->xsize, 1, fp) != 1) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
295 |
- goto error; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
296 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
297 |
- } else { |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
298 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
299 |
- /* PPM "RGB" or PyPPM mode */ |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
300 |
- for (y = 0; y < im->ysize; y++) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
301 |
- for (x = i = 0; x < im->xsize; x++, i += im->pixelsize) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
302 |
- if (fread(im->image[y]+i, im->bands, 1, fp) != 1) |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
303 |
- goto error; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
304 |
- } |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
305 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
306 |
- fclose(fp); |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
307 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
308 |
- return im; |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
309 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
310 |
-error: |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
311 |
- fclose(fp); |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
312 |
- return ImagingError_IOError(); |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
313 |
-} |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
314 |
- |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
315 |
|
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
316 |
int |
a206d468357a
25052020 problem in PYTHON-MOD/PIL
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
317 |
ImagingSaveRaw(Imaging im, FILE* fp) |