components/cups/patches/cups-lpd-huge-jobs-final.patch
author John Beck <John.Beck@Oracle.COM>
Fri, 21 Apr 2017 13:14:17 -0700
branchs11u3-sru
changeset 7934 2b9fc4cafd1f
parent 6438 6e119d670a88
permissions -rw-r--r--
25933097 thunderbird/Makefile must drop library/desktop/gdk-pixbuf from REQUIRED_PACKAGES
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6438
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     1
Source:
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     2
  Slightly fixes the original patch:
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     3
   https://www.cups.org/strfiles.php/3253/cups-lpd-hugh-jobs.patch
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     4
  from: https://www.cups.org/str.php?L4351
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     5
   ...to work on both (LP32 and LP64) program bitnesses by not using an obscure data types.
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     6
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     7
Community promotion: promoted back on https://www.cups.org/str.php?L4351
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     8
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     9
--- scheduler/cups-lpd.c	2016-02-15 16:56:40.890845828 -0800
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    10
+++ scheduler/cups-lpd.c	2016-02-15 17:13:16.665739315 -0800
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    11
@@ -912,6 +912,7 @@
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    12
 {
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    13
   http_t	*http;			/* HTTP connection */
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    14
   int		i;			/* Looping var */
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    15
+  long long	ll;			/* Looping var for hugh loops */
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    16
   int		status;			/* Command status */
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    17
   int		fd;			/* Temporary file */
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    18
   FILE		*fp;			/* File pointer */
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    19
@@ -984,6 +985,7 @@
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    20
   status   = 0;
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    21
   num_data = 0;
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    22
   fd       = -1;
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    23
+  bytes    = 0;
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    24
 
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    25
   control[0] = '\0';
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    26
 
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    27
@@ -1099,13 +1101,16 @@
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    28
    /*
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    29
     * Copy the data or control file from the client...
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    30
     */
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    31
+    /* 
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    32
+     * syslog(LOG_INFO, "count=%s lcount=%lld sizeof_line %d", id, count, atol(count), sizeof(line)); 
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    33
+     */
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    34
 
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    35
-    for (i = atoi(count); i > 0; i -= bytes)
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    36
+    for (ll = atoll(count); ll > 0; ll -= bytes)
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    37
     {
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    38
-      if (i > sizeof(line))
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    39
+      if (ll > sizeof(line))
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    40
         bytes = sizeof(line);
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    41
       else
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    42
-        bytes = i;
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    43
+        bytes = (long long) ll;
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    44
 
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    45
       if ((bytes = fread(line, 1, bytes, stdin)) > 0)
6e119d670a88 22489364 CUPS : Submit job size greater than 2 GB can not print via cups-lpd
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    46
         bytes = write(fd, line, bytes);