components/gd2/patches/005-CVE-2014-9709.patch
author Stefan Teleman <stefan.teleman@oracle.com>
Thu, 07 May 2015 10:31:56 -0700
branchs11-update
changeset 4259 03635257972b
permissions -rw-r--r--
20831561 problem in LIBRARY/GD2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4259
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     1
# External patch:
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     2
# https://bitbucket.org/libgd/gd-libgd/commits/47eb44b2e90ca88a08dca9f9a1aa9041e9587f43
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     3
# Backported to GD2 Version 2.0.35
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     4
--- gd_gif_in.c	2007-06-14 12:51:41.000000000 -0700
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     5
+++ gd_gif_in.c	2015-04-06 11:11:40.591453962 -0700
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     6
@@ -70,8 +70,10 @@
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     7
 
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     8
 #define STACK_SIZE ((1<<(MAX_LWZ_BITS))*2)
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     9
 
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    10
+#define CSD_BUF_SIZE 280
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    11
+
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    12
 typedef struct {
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    13
-	unsigned char    buf[280];
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    14
+	unsigned char    buf[CSD_BUF_SIZE];
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    15
 	int              curbit, lastbit, done, last_byte;
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    16
 } CODE_STATIC_DATA;
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    17
 
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    18
@@ -380,8 +382,14 @@
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    19
        }
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    20
 
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    21
        ret = 0;
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    22
-       for (i = scd->curbit, j = 0; j < code_size; ++i, ++j)
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    23
+       for (i = scd->curbit, j = 0; j < code_size; ++i, ++j) {
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    24
+         if (i < CSD_BUF_SIZE * 8) {
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    25
                ret |= ((scd->buf[ i / 8 ] & (1 << (i % 8))) != 0) << j;
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    26
+         } else {
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    27
+           ret = -1;
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    28
+           break;
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    29
+         }
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    30
+       }
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    31
 
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    32
        scd->curbit += code_size;
03635257972b 20831561 problem in LIBRARY/GD2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    33
        return ret;