components/python/imaging/patches/06-CVE-2016-9189.patch
author Rich Burridge <rich.burridge@oracle.com>
Mon, 21 Nov 2016 13:24:12 -0800
changeset 7369 a206d468357a
permissions -rw-r--r--
25052020 problem in PYTHON-MOD/PIL 25052021 problem in PYTHON-MOD/PIL
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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)