cups/cups-str3407.patch

68 lines
1.5 KiB
Diff

diff -up cups-1.4.2/CHANGES-1.4.txt.str3407 cups-1.4.2/CHANGES-1.4.txt
diff -up cups-1.4.2/scheduler/job.c.str3407 cups-1.4.2/scheduler/job.c
--- cups-1.4.2/scheduler/job.c.str3407 2009-11-17 12:18:38.518084476 +0000
+++ cups-1.4.2/scheduler/job.c 2009-11-17 13:00:46.204083691 +0000
@@ -1721,7 +1721,30 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
cupsdLogMessage(CUPSD_LOG_ERROR,
"[Job %d] Ran out of memory for job file types!",
job->id);
- return (1);
+
+ ippDelete(job->attrs);
+ job->attrs = NULL;
+
+ if (compressions)
+ free(compressions);
+
+ if (filetypes)
+ free(filetypes);
+
+ if (job->compressions)
+ {
+ free(job->compressions);
+ job->compressions = NULL;
+ }
+
+ if (job->filetypes)
+ {
+ free(job->filetypes);
+ job->filetypes = NULL;
+ }
+
+ job->num_files = 0;
+ return (0);
}
job->compressions = compressions;
@@ -1789,6 +1812,21 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
ippDelete(job->attrs);
job->attrs = NULL;
+
+ if (job->compressions)
+ {
+ free(job->compressions);
+ job->compressions = NULL;
+ }
+
+ if (job->filetypes)
+ {
+ free(job->filetypes);
+ job->filetypes = NULL;
+ }
+
+ job->num_files = 0;
+
unlink(jobfile);
return (0);
@@ -4411,7 +4449,7 @@ update_job_attrs(cupsd_job_t *job, /* I
else if (job->printer->state_message[0] && do_message)
cupsdSetString(&(job->printer_message->values[0].string.text),
job->printer->state_message);
-
+
/*
* ... and the printer-state-reasons value...
*/