author | John Beck <John.Beck@Oracle.COM> |
Fri, 21 Apr 2017 13:14:17 -0700 | |
branch | s11u3-sru |
changeset 7934 | 2b9fc4cafd1f |
parent 6438 | 6e119d670a88 |
permissions | -rw-r--r-- |
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); |