- Fixed out-of-memory handling when loading jobs (bug #538054, STR #3407).

This commit is contained in:
Tim Waugh 2009-11-17 13:14:28 +00:00
parent 8c5ae8f70e
commit cf3d6e26ca
2 changed files with 74 additions and 1 deletions

67
cups-str3407.patch Normal file
View File

@ -0,0 +1,67 @@
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...
*/

View File

@ -9,7 +9,7 @@
Summary: Common Unix Printing System
Name: cups
Version: 1.4.2
Release: 5%{?dist}
Release: 6%{?dist}
License: GPLv2
Group: System Environment/Daemons
Source: http://ftp.easysw.com/pub/cups/%{version}/cups-%{version}-source.tar.bz2
@ -55,6 +55,7 @@ Patch29: cups-str3391.patch
Patch30: cups-str3381.patch
Patch31: cups-str3399.patch
Patch32: cups-str3403.patch
Patch33: cups-str3407.patch
Patch100: cups-lspp.patch
@ -220,6 +221,7 @@ module.
%patch30 -p1 -b .str3381
%patch31 -p1 -b .str3399
%patch32 -p1 -b .str3403
%patch33 -p1 -b .str3407
%if %lspp
%patch100 -p1 -b .lspp
@ -512,6 +514,10 @@ rm -rf $RPM_BUILD_ROOT
%{php_extdir}/phpcups.so
%changelog
* Tue Nov 17 2009 Tim Waugh <twaugh@redhat.com> 1:1.4.2-6
- Fixed out-of-memory handling when loading jobs (bug #538054,
STR #3407).
* Mon Nov 16 2009 Tim Waugh <twaugh@redhat.com> 1:1.4.2-5
- Fixed typo in admin web template (bug #537884, STR #3403).
- Reset SIGPIPE handler for child processes (bug #537886, STR #3399).