|
Tim Waugh |
3933cb |
diff -up cups-1.7.1/scheduler/client.c.str4366 cups-1.7.1/scheduler/client.c
|
|
Tim Waugh |
3933cb |
--- cups-1.7.1/scheduler/client.c.str4366 2014-03-06 10:56:08.501062334 +0000
|
|
Tim Waugh |
3933cb |
+++ cups-1.7.1/scheduler/client.c 2014-03-06 10:56:26.223150784 +0000
|
|
Tim Waugh |
3933cb |
@@ -3010,6 +3010,17 @@ cupsdWriteClient(cupsd_client_t *con) /*
|
|
Tim Waugh |
3933cb |
con->file_ready = 0;
|
|
Tim Waugh |
3933cb |
}
|
|
Tim Waugh |
3933cb |
|
|
Tim Waugh |
3933cb |
+ bytes = (ssize_t)(sizeof(con->header) - (size_t)con->header_used);
|
|
Tim Waugh |
3933cb |
+
|
|
Tim Waugh |
3933cb |
+ if (!con->pipe_pid && bytes > con->http.data_remaining)
|
|
Tim Waugh |
3933cb |
+ {
|
|
Tim Waugh |
3933cb |
+ /*
|
|
Tim Waugh |
3933cb |
+ * Limit GET bytes to original size of file (STR #3265)...
|
|
Tim Waugh |
3933cb |
+ */
|
|
Tim Waugh |
3933cb |
+
|
|
Tim Waugh |
3933cb |
+ bytes = (ssize_t)con->http.data_remaining;
|
|
Tim Waugh |
3933cb |
+ }
|
|
Tim Waugh |
3933cb |
+
|
|
Tim Waugh |
3933cb |
if (con->response && con->response->state != IPP_DATA)
|
|
Tim Waugh |
3933cb |
{
|
|
Tim Waugh |
3933cb |
int wused = con->http.wused; /* Previous write buffer use */
|
|
Tim Waugh |
3933cb |
@@ -3052,8 +3063,7 @@ cupsdWriteClient(cupsd_client_t *con) /*
|
|
Tim Waugh |
3933cb |
con->http.fd, (int)bytes, con->http.state,
|
|
Tim Waugh |
3933cb |
CUPS_LLCAST con->http.data_remaining);
|
|
Tim Waugh |
3933cb |
}
|
|
Tim Waugh |
3933cb |
- else if ((bytes = read(con->file, con->header + con->header_used,
|
|
Tim Waugh |
3933cb |
- sizeof(con->header) - con->header_used)) > 0)
|
|
Tim Waugh |
3933cb |
+ else if ((bytes = read(con->file, con->header + con->header_used, (size_t)bytes)) > 0)
|
|
Tim Waugh |
3933cb |
{
|
|
Tim Waugh |
3933cb |
con->header_used += bytes;
|
|
Tim Waugh |
3933cb |
|