components/cups/patches/cups-lpd-huge-jobs-final.patch
author Mike Sullivan <Mike.Sullivan@Oracle.COM>
Thu, 26 Jan 2017 16:44:14 -0800
changeset 7617 14b1a4293086
parent 5614 12b0db03649b
permissions -rw-r--r--
Close of build 117.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5614
12b0db03649b 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:
12b0db03649b 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:
12b0db03649b 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
12b0db03649b 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
12b0db03649b 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.
12b0db03649b 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
12b0db03649b 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
12b0db03649b 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
12b0db03649b 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
12b0db03649b 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
12b0db03649b 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 @@
12b0db03649b 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
 {
12b0db03649b 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 */
12b0db03649b 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 */
12b0db03649b 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 */
12b0db03649b 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 */
12b0db03649b 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 */
12b0db03649b 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 */
12b0db03649b 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 @@
12b0db03649b 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;
12b0db03649b 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;
12b0db03649b 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;
12b0db03649b 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;
12b0db03649b 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
 
12b0db03649b 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';
12b0db03649b 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
 
12b0db03649b 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 @@
12b0db03649b 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
    /*
12b0db03649b 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...
12b0db03649b 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
     */
12b0db03649b 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
+    /* 
12b0db03649b 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)); 
12b0db03649b 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
+     */
12b0db03649b 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
 
12b0db03649b 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)
12b0db03649b 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)
12b0db03649b 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
     {
12b0db03649b 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))
12b0db03649b 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))
12b0db03649b 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);
12b0db03649b 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
12b0db03649b 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;
12b0db03649b 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;
12b0db03649b 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
 
12b0db03649b 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)
12b0db03649b 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);