From 1885e4ece4f7b53294e34f2ee9655ac18d743846 Mon Sep 17 00:00:00 2001 From: mike Date: Fri, 22 Apr 2011 22:36:10 +0000 Subject: [PATCH] The scheduler might leave old job data files in the spool directory (STR #3795) git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@9715 7a7537e8-13f0-0310-91df-b6672ffda945 --- CHANGES-1.4.txt | 2 ++ scheduler/job.c | 14 +++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/CHANGES-1.4.txt b/CHANGES-1.4.txt index 8215edaf91..1cf3a8f223 100644 --- a/CHANGES-1.4.txt +++ b/CHANGES-1.4.txt @@ -9,6 +9,8 @@ CHANGES IN CUPS V1.4.7 STR #3755, STR #3769, STR #3783) - Configure script fixes (STR #3659, STR #3691) - Compilation fixes (STR #3718, STR #3771, STR #3774) + - The scheduler might leave old job data files in the spool directory + (STR #3795) - CUPS did not work with locales using the ASCII character set (STR #3832) - httpAddrString() did not return a URI-style IPv6 numeric address diff --git a/scheduler/job.c b/scheduler/job.c index 828dcfe53b..cefd671c57 100644 --- a/scheduler/job.c +++ b/scheduler/job.c @@ -1262,6 +1262,9 @@ void cupsdDeleteJob(cupsd_job_t *job, /* I - Job */ cupsd_jobaction_t action)/* I - Action */ { + char filename[1024]; /* Job filename */ + + if (job->printer) finalize_job(job, 1); @@ -1271,8 +1274,6 @@ cupsdDeleteJob(cupsd_job_t *job, /* I - Job */ * Remove the job info file... */ - char filename[1024]; /* Job filename */ - snprintf(filename, sizeof(filename), "%s/c%05d", RequestRoot, job->id); unlink(filename); @@ -1290,7 +1291,14 @@ cupsdDeleteJob(cupsd_job_t *job, /* I - Job */ free(job->compressions); free(job->filetypes); - job->num_files = 0; + while (job->num_files > 0) + { + snprintf(filename, sizeof(filename), "%s/d%05d-%03d", RequestRoot, + job->id, job->num_files); + unlink(filename); + + job->num_files --; + } } if (job->history) -- 2.47.2