components/cups/patches/str3867.patch
author Stefan Teleman <stefan.teleman@oracle.com>
Tue, 17 Mar 2015 19:06:56 -0700
changeset 3966 cca72467a46d
parent 478 143405c872eb
permissions -rw-r--r--
19078668 unixODBC version 2.3.1 needs a TPNO
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
478
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
     1
See: http://cups.org/str.php?L3867 for details.
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
     2
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
     3
Index: filter/image-gif.c
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
     4
===================================================================
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
     5
--- filter/image-gif.c	(revision 9839)
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
     6
+++ filter/image-gif.c	(working copy)
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
     7
@@ -353,7 +353,7 @@
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
     8
     * Read in another buffer...
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
     9
     */
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    10
 
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    11
-    if ((count = gif_get_block (fp, buf + last_byte)) <= 0)
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    12
+    if ((count = gif_get_block(fp, buf + last_byte)) <= 0)
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    13
     {
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    14
      /*
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    15
       * Whoops, no more data!
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    16
@@ -582,20 +582,14 @@
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    17
     gif_get_code(fp, 0, 1);
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    18
 
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    19
    /*
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    20
-    * Wipe the decompressor table...
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    21
+    * Wipe the decompressor table (already mostly 0 due to the calloc above...)
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    22
     */
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    23
 
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    24
     fresh = 1;
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    25
 
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    26
-    for (i = 0; i < clear_code; i ++)
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    27
-    {
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    28
-      table[0][i] = 0;
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    29
+    for (i = 1; i < clear_code; i ++)
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    30
       table[1][i] = i;
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    31
-    }
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    32
 
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    33
-    for (; i < 4096; i ++)
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    34
-      table[0][i] = table[1][0] = 0;
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    35
-
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    36
     sp = stack;
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    37
 
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    38
     return (0);
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    39
@@ -605,30 +599,31 @@
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    40
     fresh = 0;
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    41
 
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    42
     do
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    43
+    {
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    44
       firstcode = oldcode = gif_get_code(fp, code_size, 0);
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    45
+    }
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    46
     while (firstcode == clear_code);
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    47
 
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    48
-    return (firstcode);
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    49
+    return (firstcode & 255);
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    50
   }
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    51
   else if (!table)
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    52
     return (0);
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    53
 
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    54
   if (sp > stack)
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    55
-    return (*--sp);
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    56
+    return ((*--sp) & 255);
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    57
 
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    58
-  while ((code = gif_get_code (fp, code_size, 0)) >= 0)
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    59
+  while ((code = gif_get_code(fp, code_size, 0)) >= 0)
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    60
   {
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    61
     if (code == clear_code)
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    62
     {
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    63
-      for (i = 0; i < clear_code; i ++)
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    64
-      {
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    65
-	table[0][i] = 0;
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    66
+     /*
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    67
+      * Clear/reset the compression table...
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    68
+      */
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    69
+
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    70
+      memset(table, 0, 2 * sizeof(gif_table_t));
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    71
+      for (i = 1; i < clear_code; i ++)
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    72
 	table[1][i] = i;
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    73
-      }
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    74
 
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    75
-      for (; i < 4096; i ++)
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    76
-	table[0][i] = table[1][i] = 0;
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    77
-
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    78
       code_size     = set_code_size + 1;
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    79
       max_code_size = 2 * clear_code;
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    80
       max_code      = clear_code + 2;
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    81
@@ -637,13 +632,12 @@
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    82
 
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    83
       firstcode = oldcode = gif_get_code(fp, code_size, 0);
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    84
 
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    85
-      return (firstcode);
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    86
+      return (firstcode & 255);
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    87
     }
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    88
-    else if (code == end_code)
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    89
+    else if (code == end_code || code > max_code)
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    90
     {
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    91
-      unsigned char	buf[260];
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    92
+      unsigned char	buf[260];	/* Block buffer */
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    93
 
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    94
-
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    95
       if (!gif_eof)
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    96
         while (gif_get_block(fp, buf) > 0);
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    97
 
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    98
@@ -652,7 +646,7 @@
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    99
 
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
   100
     incode = code;
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
   101
 
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
   102
-    if (code >= max_code)
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
   103
+    if (code == max_code)
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
   104
     {
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
   105
       *sp++ = firstcode;
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
   106
       code  = oldcode;
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
   107
@@ -686,10 +680,10 @@
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
   108
     oldcode = incode;
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
   109
 
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
   110
     if (sp > stack)
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
   111
-      return (*--sp);
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
   112
+      return ((*--sp) & 255);
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
   113
   }
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
   114
 
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
   115
-  return (code);
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
   116
+  return (code & 255);
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
   117
 }
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
   118
 
143405c872eb 7079992 Problem with print/cups
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
   119