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-- |
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); |