From 9f7795f13cf377367cfbb5fdb0a59f40f4a40b38 Mon Sep 17 00:00:00 2001 From: Jiri Popelka Date: Dec 13 2010 14:08:42 +0000 Subject: Merge branch 'f13' into f14 --- diff --git a/cups-lspp.patch b/cups-lspp.patch index 4b55bf2..2f8296d 100644 --- a/cups-lspp.patch +++ b/cups-lspp.patch @@ -1,6 +1,6 @@ diff -up cups-1.4.5/config.h.in.lspp cups-1.4.5/config.h.in ---- cups-1.4.5/config.h.in.lspp 2010-11-12 13:31:27.000000000 +0100 -+++ cups-1.4.5/config.h.in 2010-11-12 13:32:50.000000000 +0100 +--- cups-1.4.5/config.h.in.lspp 2010-12-13 14:51:01.000000000 +0100 ++++ cups-1.4.5/config.h.in 2010-12-13 14:51:01.000000000 +0100 @@ -672,6 +672,12 @@ #undef HAVE_SYS_STATVFS_H #undef HAVE_SYS_VFS_H @@ -15,8 +15,8 @@ diff -up cups-1.4.5/config.h.in.lspp cups-1.4.5/config.h.in #endif /* !_CUPS_CONFIG_H_ */ diff -up cups-1.4.5/config-scripts/cups-lspp.m4.lspp cups-1.4.5/config-scripts/cups-lspp.m4 ---- cups-1.4.5/config-scripts/cups-lspp.m4.lspp 2010-11-12 13:31:27.000000000 +0100 -+++ cups-1.4.5/config-scripts/cups-lspp.m4 2010-11-12 13:31:27.000000000 +0100 +--- cups-1.4.5/config-scripts/cups-lspp.m4.lspp 2010-12-13 14:51:01.000000000 +0100 ++++ cups-1.4.5/config-scripts/cups-lspp.m4 2010-12-13 14:51:01.000000000 +0100 @@ -0,0 +1,36 @@ +dnl +dnl LSPP code for the Common UNIX Printing System (CUPS). @@ -56,7 +56,7 @@ diff -up cups-1.4.5/config-scripts/cups-lspp.m4.lspp cups-1.4.5/config-scripts/c +fi diff -up cups-1.4.5/configure.in.lspp cups-1.4.5/configure.in --- cups-1.4.5/configure.in.lspp 2010-06-22 23:42:44.000000000 +0200 -+++ cups-1.4.5/configure.in 2010-11-12 13:31:27.000000000 +0100 ++++ cups-1.4.5/configure.in 2010-12-13 14:51:01.000000000 +0100 @@ -42,6 +42,8 @@ sinclude(config-scripts/cups-pap.m4) sinclude(config-scripts/cups-pdf.m4) sinclude(config-scripts/cups-scripting.m4) @@ -68,7 +68,7 @@ diff -up cups-1.4.5/configure.in.lspp cups-1.4.5/configure.in LANGFILES="" diff -up cups-1.4.5/cups/cups.h.lspp cups-1.4.5/cups/cups.h --- cups-1.4.5/cups/cups.h.lspp 2010-06-22 05:18:27.000000000 +0200 -+++ cups-1.4.5/cups/cups.h 2010-11-12 13:31:27.000000000 +0100 ++++ cups-1.4.5/cups/cups.h 2010-12-13 14:51:01.000000000 +0100 @@ -15,6 +15,9 @@ * This file is subject to the Apple OS-Developed Software exception. */ @@ -94,7 +94,7 @@ diff -up cups-1.4.5/cups/cups.h.lspp cups-1.4.5/cups/cups.h */ diff -up cups-1.4.5/data/Makefile.lspp cups-1.4.5/data/Makefile --- cups-1.4.5/data/Makefile.lspp 2008-11-12 20:30:57.000000000 +0100 -+++ cups-1.4.5/data/Makefile 2010-11-12 13:31:27.000000000 +0100 ++++ cups-1.4.5/data/Makefile 2010-12-13 14:51:01.000000000 +0100 @@ -25,7 +25,10 @@ BANNERS = \ secret \ standard \ @@ -108,8 +108,8 @@ diff -up cups-1.4.5/data/Makefile.lspp cups-1.4.5/data/Makefile CHARMAPS = \ euc-cn.txt \ diff -up cups-1.4.5/data/mls.lspp cups-1.4.5/data/mls ---- cups-1.4.5/data/mls.lspp 2010-11-12 13:31:27.000000000 +0100 -+++ cups-1.4.5/data/mls 2010-11-12 13:31:27.000000000 +0100 +--- cups-1.4.5/data/mls.lspp 2010-12-13 14:51:01.000000000 +0100 ++++ cups-1.4.5/data/mls 2010-12-13 14:51:01.000000000 +0100 @@ -0,0 +1,261 @@ +%!PS-Adobe-3.0 +%%BoundingBox: 0 0 612 792 @@ -373,8 +373,8 @@ diff -up cups-1.4.5/data/mls.lspp cups-1.4.5/data/mls +% +%%EOF diff -up cups-1.4.5/data/selinux.lspp cups-1.4.5/data/selinux ---- cups-1.4.5/data/selinux.lspp 2010-11-12 13:31:27.000000000 +0100 -+++ cups-1.4.5/data/selinux 2010-11-12 13:31:27.000000000 +0100 +--- cups-1.4.5/data/selinux.lspp 2010-12-13 14:51:01.000000000 +0100 ++++ cups-1.4.5/data/selinux 2010-12-13 14:51:01.000000000 +0100 @@ -0,0 +1,261 @@ +%!PS-Adobe-3.0 +%%BoundingBox: 0 0 612 792 @@ -638,8 +638,8 @@ diff -up cups-1.4.5/data/selinux.lspp cups-1.4.5/data/selinux +% +%%EOF diff -up cups-1.4.5/data/te.lspp cups-1.4.5/data/te ---- cups-1.4.5/data/te.lspp 2010-11-12 13:31:27.000000000 +0100 -+++ cups-1.4.5/data/te 2010-11-12 13:31:27.000000000 +0100 +--- cups-1.4.5/data/te.lspp 2010-12-13 14:51:01.000000000 +0100 ++++ cups-1.4.5/data/te 2010-12-13 14:51:01.000000000 +0100 @@ -0,0 +1,261 @@ +%!PS-Adobe-3.0 +%%BoundingBox: 0 0 612 792 @@ -904,7 +904,7 @@ diff -up cups-1.4.5/data/te.lspp cups-1.4.5/data/te +%%EOF diff -up cups-1.4.5/filter/common.c.lspp cups-1.4.5/filter/common.c --- cups-1.4.5/filter/common.c.lspp 2007-07-11 23:46:42.000000000 +0200 -+++ cups-1.4.5/filter/common.c 2010-11-12 13:31:27.000000000 +0100 ++++ cups-1.4.5/filter/common.c 2010-12-13 14:51:01.000000000 +0100 @@ -30,6 +30,12 @@ * Include necessary headers... */ @@ -1074,8 +1074,8 @@ diff -up cups-1.4.5/filter/common.c.lspp cups-1.4.5/filter/common.c /* diff -up cups-1.4.5/filter/pstops.c.lspp cups-1.4.5/filter/pstops.c ---- cups-1.4.5/filter/pstops.c.lspp 2010-11-12 13:31:27.000000000 +0100 -+++ cups-1.4.5/filter/pstops.c 2010-11-12 13:31:27.000000000 +0100 +--- cups-1.4.5/filter/pstops.c.lspp 2010-12-13 14:51:01.000000000 +0100 ++++ cups-1.4.5/filter/pstops.c 2010-12-13 14:51:01.000000000 +0100 @@ -3335,6 +3335,18 @@ write_label_prolog(pstops_doc_t *doc, /* { const char *classification; /* CLASSIFICATION environment variable */ @@ -1232,8 +1232,8 @@ diff -up cups-1.4.5/filter/pstops.c.lspp cups-1.4.5/filter/pstops.c /* diff -up cups-1.4.5/Makedefs.in.lspp cups-1.4.5/Makedefs.in ---- cups-1.4.5/Makedefs.in.lspp 2010-11-12 13:31:27.000000000 +0100 -+++ cups-1.4.5/Makedefs.in 2010-11-12 13:31:27.000000000 +0100 +--- cups-1.4.5/Makedefs.in.lspp 2010-12-13 14:51:01.000000000 +0100 ++++ cups-1.4.5/Makedefs.in 2010-12-13 14:51:01.000000000 +0100 @@ -146,7 +146,7 @@ LIBCUPSORDER = @LIBCUPSORDER@ LIBCUPSIMAGEORDER = @LIBCUPSIMAGEORDER@ LINKCUPS = @LINKCUPS@ $(SSLLIBS) $(DNSSDLIBS) @@ -1254,7 +1254,7 @@ diff -up cups-1.4.5/Makedefs.in.lspp cups-1.4.5/Makedefs.in .c.o: diff -up cups-1.4.5/scheduler/client.c.lspp cups-1.4.5/scheduler/client.c --- cups-1.4.5/scheduler/client.c.lspp 2010-10-17 06:13:56.000000000 +0200 -+++ cups-1.4.5/scheduler/client.c 2010-11-12 13:34:02.000000000 +0100 ++++ cups-1.4.5/scheduler/client.c 2010-12-13 14:51:01.000000000 +0100 @@ -44,6 +44,7 @@ * valid_host() - Is the Host: field valid? * write_file() - Send a file via HTTP. @@ -1342,7 +1342,7 @@ diff -up cups-1.4.5/scheduler/client.c.lspp cups-1.4.5/scheduler/client.c #ifdef AF_INET6 if (con->http.hostaddr->addr.sa_family == AF_INET6) cupsdLogMessage(CUPSD_LOG_DEBUG, "cupsdAcceptClient: %d from %s:%d (IPv6)", -@@ -781,6 +840,13 @@ cupsdReadClient(cupsd_client_t *con) /* +@@ -781,6 +840,13 @@ cupsdReadClient(cupsd_client_t *con) /* mime_type_t *type; /* MIME type of file */ cupsd_printer_t *p; /* Printer */ static unsigned request_id = 0; /* Request ID for temp files */ @@ -1356,7 +1356,7 @@ diff -up cups-1.4.5/scheduler/client.c.lspp cups-1.4.5/scheduler/client.c status = HTTP_CONTINUE; -@@ -2135,6 +2201,67 @@ cupsdReadClient(cupsd_client_t *con) /* +@@ -2135,6 +2201,67 @@ cupsdReadClient(cupsd_client_t *con) /* fchmod(con->file, 0640); fchown(con->file, RunUser, Group); fcntl(con->file, F_SETFD, fcntl(con->file, F_GETFD) | FD_CLOEXEC); @@ -1477,7 +1477,7 @@ diff -up cups-1.4.5/scheduler/client.c.lspp cups-1.4.5/scheduler/client.c */ diff -up cups-1.4.5/scheduler/client.h.lspp cups-1.4.5/scheduler/client.h --- cups-1.4.5/scheduler/client.h.lspp 2009-05-27 00:01:23.000000000 +0200 -+++ cups-1.4.5/scheduler/client.h 2010-11-12 13:31:27.000000000 +0100 ++++ cups-1.4.5/scheduler/client.h 2010-12-13 14:51:01.000000000 +0100 @@ -18,6 +18,13 @@ #endif /* HAVE_AUTHORIZATION_H */ @@ -1514,8 +1514,8 @@ diff -up cups-1.4.5/scheduler/client.h.lspp cups-1.4.5/scheduler/client.h /* diff -up cups-1.4.5/scheduler/conf.c.lspp cups-1.4.5/scheduler/conf.c ---- cups-1.4.5/scheduler/conf.c.lspp 2010-11-12 13:31:27.000000000 +0100 -+++ cups-1.4.5/scheduler/conf.c 2010-11-12 13:31:27.000000000 +0100 +--- cups-1.4.5/scheduler/conf.c.lspp 2010-12-13 14:51:01.000000000 +0100 ++++ cups-1.4.5/scheduler/conf.c 2010-12-13 14:51:01.000000000 +0100 @@ -29,6 +29,7 @@ * read_configuration() - Read a configuration file. * read_location() - Read a definition. @@ -1626,8 +1626,8 @@ diff -up cups-1.4.5/scheduler/conf.c.lspp cups-1.4.5/scheduler/conf.c /* * 'read_policy()' - Read a definition. diff -up cups-1.4.5/scheduler/conf.h.lspp cups-1.4.5/scheduler/conf.h ---- cups-1.4.5/scheduler/conf.h.lspp 2010-11-12 13:31:27.000000000 +0100 -+++ cups-1.4.5/scheduler/conf.h 2010-11-12 13:31:27.000000000 +0100 +--- cups-1.4.5/scheduler/conf.h.lspp 2010-12-13 14:51:01.000000000 +0100 ++++ cups-1.4.5/scheduler/conf.h 2010-12-13 14:51:01.000000000 +0100 @@ -250,6 +250,12 @@ VAR char *ServerKey VALUE(NULL); VAR int SSLOptions VALUE(CUPSD_SSL_NONE); /* SSL/TLS options */ @@ -1652,8 +1652,8 @@ diff -up cups-1.4.5/scheduler/conf.h.lspp cups-1.4.5/scheduler/conf.h /* * Prototypes... diff -up cups-1.4.5/scheduler/ipp.c.lspp cups-1.4.5/scheduler/ipp.c ---- cups-1.4.5/scheduler/ipp.c.lspp 2010-11-12 13:31:27.000000000 +0100 -+++ cups-1.4.5/scheduler/ipp.c 2010-11-12 13:31:27.000000000 +0100 +--- cups-1.4.5/scheduler/ipp.c.lspp 2010-12-13 14:51:01.000000000 +0100 ++++ cups-1.4.5/scheduler/ipp.c 2010-12-13 15:01:43.000000000 +0100 @@ -41,6 +41,7 @@ * cancel_all_jobs() - Cancel all print jobs. * cancel_job() - Cancel a print job. @@ -1719,7 +1719,7 @@ diff -up cups-1.4.5/scheduler/ipp.c.lspp cups-1.4.5/scheduler/ipp.c cupsdLogMessage(CUPSD_LOG_DEBUG2, "add_job(%p[%d], %p(%s), %p(%s/%s))", -@@ -1612,6 +1642,104 @@ add_job(cupsd_client_t *con, /* I - Cl +@@ -1612,6 +1642,106 @@ add_job(cupsd_client_t *con, /* I - Cl ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_NAME, "job-name", NULL, "Untitled"); @@ -1774,7 +1774,9 @@ diff -up cups-1.4.5/scheduler/ipp.c.lspp cups-1.4.5/scheduler/ipp.c + send_ipp_status(con, IPP_NOT_AUTHORIZED, _("Printer is not a character device or regular file")); + return (NULL); + } -+ avc_init("cupsd_enqueue_", NULL, NULL, NULL, NULL); ++ static avc_initialized = 0; ++ if (!avc_initialized++) ++ avc_init("cupsd_enqueue_", NULL, NULL, NULL, NULL); + avc_entry_ref_init(&avcref); + if (avc_context_to_sid(con->scon, &clisid) != 0) + { @@ -1824,7 +1826,7 @@ diff -up cups-1.4.5/scheduler/ipp.c.lspp cups-1.4.5/scheduler/ipp.c if ((job = cupsdAddJob(priority, printer->name)) == NULL) { send_ipp_status(con, IPP_INTERNAL_ERROR, -@@ -1620,6 +1748,32 @@ add_job(cupsd_client_t *con, /* I - Cl +@@ -1620,6 +1750,32 @@ add_job(cupsd_client_t *con, /* I - Cl return (NULL); } @@ -1857,7 +1859,7 @@ diff -up cups-1.4.5/scheduler/ipp.c.lspp cups-1.4.5/scheduler/ipp.c job->dtype = printer->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT | CUPS_PRINTER_REMOTE); job->attrs = con->request; -@@ -1825,6 +1979,29 @@ add_job(cupsd_client_t *con, /* I - Cl +@@ -1825,6 +1981,29 @@ add_job(cupsd_client_t *con, /* I - Cl attr->values[0].string.text = _cupsStrRetain(printer->job_sheets[0]); attr->values[1].string.text = _cupsStrRetain(printer->job_sheets[1]); } @@ -1887,7 +1889,7 @@ diff -up cups-1.4.5/scheduler/ipp.c.lspp cups-1.4.5/scheduler/ipp.c job->job_sheets = attr; -@@ -1855,6 +2032,9 @@ add_job(cupsd_client_t *con, /* I - Cl +@@ -1855,6 +2034,9 @@ add_job(cupsd_client_t *con, /* I - Cl "job-sheets=\"%s,none\", " "job-originating-user-name=\"%s\"", Classification, job->username); @@ -1897,7 +1899,7 @@ diff -up cups-1.4.5/scheduler/ipp.c.lspp cups-1.4.5/scheduler/ipp.c } else if (attr->num_values == 2 && strcmp(attr->values[0].string.text, -@@ -1873,6 +2053,9 @@ add_job(cupsd_client_t *con, /* I - Cl +@@ -1873,6 +2055,9 @@ add_job(cupsd_client_t *con, /* I - Cl "job-originating-user-name=\"%s\"", attr->values[0].string.text, attr->values[1].string.text, job->username); @@ -1907,7 +1909,7 @@ diff -up cups-1.4.5/scheduler/ipp.c.lspp cups-1.4.5/scheduler/ipp.c } else if (strcmp(attr->values[0].string.text, Classification) && strcmp(attr->values[0].string.text, "none") && -@@ -1893,6 +2076,9 @@ add_job(cupsd_client_t *con, /* I - Cl +@@ -1893,6 +2078,9 @@ add_job(cupsd_client_t *con, /* I - Cl "job-originating-user-name=\"%s\"", attr->values[0].string.text, attr->values[1].string.text, job->username); @@ -1917,7 +1919,7 @@ diff -up cups-1.4.5/scheduler/ipp.c.lspp cups-1.4.5/scheduler/ipp.c } } else if (strcmp(attr->values[0].string.text, Classification) && -@@ -1933,8 +2119,52 @@ add_job(cupsd_client_t *con, /* I - Cl +@@ -1933,8 +2121,52 @@ add_job(cupsd_client_t *con, /* I - Cl "job-sheets=\"%s\", " "job-originating-user-name=\"%s\"", Classification, job->username); @@ -1970,7 +1972,7 @@ diff -up cups-1.4.5/scheduler/ipp.c.lspp cups-1.4.5/scheduler/ipp.c /* * See if we need to add the starting sheet... -@@ -4289,6 +4519,103 @@ check_rss_recipient( +@@ -4289,6 +4521,107 @@ check_rss_recipient( } @@ -2015,10 +2017,14 @@ diff -up cups-1.4.5/scheduler/ipp.c.lspp cups-1.4.5/scheduler/ipp.c + * Initialize the avc engine... + */ + -+ if (avc_init("cupsd", NULL, NULL, NULL, NULL) < 0) ++ static avc_initialized = 0; ++ if (! avc_initialized++) + { -+ cupsdLogMessage(CUPSD_LOG_ERROR, "check_context: unable avc_init"); -+ return -1; ++ if (avc_init("cupsd", NULL, NULL, NULL, NULL) < 0) ++ { ++ cupsdLogMessage(CUPSD_LOG_ERROR, "check_context: unable avc_init"); ++ return -1; ++ } + } + if (avc_context_to_sid(con->scon, &clisid) != 0) + { @@ -2074,7 +2080,7 @@ diff -up cups-1.4.5/scheduler/ipp.c.lspp cups-1.4.5/scheduler/ipp.c /* * 'check_quotas()' - Check quotas for a printer and user. */ -@@ -4843,6 +5170,15 @@ copy_banner(cupsd_client_t *con, /* I - +@@ -4843,6 +5176,15 @@ copy_banner(cupsd_client_t *con, /* I - char attrname[255], /* Name of attribute */ *s; /* Pointer into name */ ipp_attribute_t *attr; /* Attribute */ @@ -2090,7 +2096,7 @@ diff -up cups-1.4.5/scheduler/ipp.c.lspp cups-1.4.5/scheduler/ipp.c cupsdLogMessage(CUPSD_LOG_DEBUG2, -@@ -4878,6 +5214,82 @@ copy_banner(cupsd_client_t *con, /* I - +@@ -4878,6 +5220,82 @@ copy_banner(cupsd_client_t *con, /* I - fchmod(cupsFileNumber(out), 0640); fchown(cupsFileNumber(out), RunUser, Group); @@ -2173,7 +2179,7 @@ diff -up cups-1.4.5/scheduler/ipp.c.lspp cups-1.4.5/scheduler/ipp.c /* * Try the localized banner file under the subdirectory... -@@ -4972,6 +5384,24 @@ copy_banner(cupsd_client_t *con, /* I - +@@ -4972,6 +5390,24 @@ copy_banner(cupsd_client_t *con, /* I - else s = attrname; @@ -2198,7 +2204,7 @@ diff -up cups-1.4.5/scheduler/ipp.c.lspp cups-1.4.5/scheduler/ipp.c if (!strcmp(s, "printer-name")) { cupsFilePuts(out, job->dest); -@@ -6945,6 +7375,22 @@ get_job_attrs(cupsd_client_t *con, /* I +@@ -6945,6 +7381,22 @@ get_job_attrs(cupsd_client_t *con, /* I return; } @@ -2221,7 +2227,7 @@ diff -up cups-1.4.5/scheduler/ipp.c.lspp cups-1.4.5/scheduler/ipp.c /* * Copy attributes... */ -@@ -7175,6 +7621,11 @@ get_jobs(cupsd_client_t *con, /* I - C +@@ -7175,6 +7627,11 @@ get_jobs(cupsd_client_t *con, /* I - C if (username[0] && strcasecmp(username, job->username)) continue; @@ -2233,7 +2239,7 @@ diff -up cups-1.4.5/scheduler/ipp.c.lspp cups-1.4.5/scheduler/ipp.c if (count > 0) ippAddSeparator(con->response); -@@ -11594,6 +12045,11 @@ validate_user(cupsd_job_t *job, /* I +@@ -11594,6 +12051,11 @@ validate_user(cupsd_job_t *job, /* I strlcpy(username, get_username(con), userlen); @@ -2246,8 +2252,8 @@ diff -up cups-1.4.5/scheduler/ipp.c.lspp cups-1.4.5/scheduler/ipp.c * Check the username against the owner... */ diff -up cups-1.4.5/scheduler/job.c.lspp cups-1.4.5/scheduler/job.c ---- cups-1.4.5/scheduler/job.c.lspp 2010-11-12 13:31:27.000000000 +0100 -+++ cups-1.4.5/scheduler/job.c 2010-11-12 13:31:27.000000000 +0100 +--- cups-1.4.5/scheduler/job.c.lspp 2010-12-13 14:51:01.000000000 +0100 ++++ cups-1.4.5/scheduler/job.c 2010-12-13 15:02:11.000000000 +0100 @@ -66,6 +66,9 @@ * update_job_attrs() - Update the job-printer-* attributes. */ @@ -2273,7 +2279,7 @@ diff -up cups-1.4.5/scheduler/job.c.lspp cups-1.4.5/scheduler/job.c /* * Design Notes for Job Management -@@ -505,6 +516,14 @@ cupsdContinueJob(cupsd_job_t *job) /* I +@@ -505,6 +516,14 @@ cupsdContinueJob(cupsd_job_t *job) /* I /* PRINTER env variable */ rip_max_cache[255]; /* RIP_MAX_CACHE env variable */ @@ -2288,7 +2294,7 @@ diff -up cups-1.4.5/scheduler/job.c.lspp cups-1.4.5/scheduler/job.c cupsdLogMessage(CUPSD_LOG_DEBUG2, -@@ -929,6 +948,67 @@ cupsdContinueJob(cupsd_job_t *job) /* I +@@ -929,6 +948,67 @@ cupsdContinueJob(cupsd_job_t *job) /* I } } @@ -2356,7 +2362,7 @@ diff -up cups-1.4.5/scheduler/job.c.lspp cups-1.4.5/scheduler/job.c if (Classification && !banner_page) { if ((attr = ippFindAttribute(job->attrs, "job-sheets", -@@ -1165,13 +1245,13 @@ cupsdContinueJob(cupsd_job_t *job) /* I +@@ -1165,13 +1245,13 @@ cupsdContinueJob(cupsd_job_t *job) /* I if (access(command, F_OK)) { snprintf(command, sizeof(command), "%s/backend/%s", ServerBin_compat, @@ -2372,7 +2378,7 @@ diff -up cups-1.4.5/scheduler/job.c.lspp cups-1.4.5/scheduler/job.c ServerBin); } else -@@ -1179,7 +1259,7 @@ cupsdContinueJob(cupsd_job_t *job) /* I +@@ -1179,7 +1259,7 @@ cupsdContinueJob(cupsd_job_t *job) /* I /* Not in the compat directory either; make any error messages use the correct directory name then. */ snprintf(command, sizeof(command), "%s/backend/%s", ServerBin, @@ -2533,7 +2539,7 @@ diff -up cups-1.4.5/scheduler/job.c.lspp cups-1.4.5/scheduler/job.c cupsdLogMessage(CUPSD_LOG_DEBUG2, "start_job(job=%p(%d), printer=%p(%s))", job, job->id, printer, printer->name); -@@ -4142,6 +4339,106 @@ start_job(cupsd_job_t *job, /* I - +@@ -4142,6 +4339,108 @@ start_job(cupsd_job_t *job, /* I - fcntl(job->side_pipes[1], F_SETFD, fcntl(job->side_pipes[1], F_GETFD) | FD_CLOEXEC); @@ -2582,7 +2588,9 @@ diff -up cups-1.4.5/scheduler/job.c.lspp cups-1.4.5/scheduler/job.c + cupsdSetJobState(job, IPP_JOB_ABORTED, CUPSD_JOB_DEFAULT, NULL); + return ; + } -+ avc_init("cupsd_dequeue_", NULL, NULL, NULL, NULL); ++ static avc_initialized = 0; ++ if (!avc_initialized++) ++ avc_init("cupsd_dequeue_", NULL, NULL, NULL, NULL); + avc_entry_ref_init(&avcref); + if (avc_context_to_sid(job->scon, &clisid) != 0) + { @@ -2642,7 +2650,7 @@ diff -up cups-1.4.5/scheduler/job.c.lspp cups-1.4.5/scheduler/job.c */ diff -up cups-1.4.5/scheduler/job.h.lspp cups-1.4.5/scheduler/job.h --- cups-1.4.5/scheduler/job.h.lspp 2009-05-12 00:46:01.000000000 +0200 -+++ cups-1.4.5/scheduler/job.h 2010-11-12 13:31:27.000000000 +0100 ++++ cups-1.4.5/scheduler/job.h 2010-12-13 14:51:01.000000000 +0100 @@ -13,6 +13,13 @@ * file is missing or damaged, see the license at "http://www.cups.org/". */ @@ -2669,8 +2677,8 @@ diff -up cups-1.4.5/scheduler/job.h.lspp cups-1.4.5/scheduler/job.h typedef struct cupsd_joblog_s /**** Job log message ****/ diff -up cups-1.4.5/scheduler/main.c.lspp cups-1.4.5/scheduler/main.c ---- cups-1.4.5/scheduler/main.c.lspp 2010-11-12 13:31:27.000000000 +0100 -+++ cups-1.4.5/scheduler/main.c 2010-11-12 13:31:27.000000000 +0100 +--- cups-1.4.5/scheduler/main.c.lspp 2010-12-13 14:51:01.000000000 +0100 ++++ cups-1.4.5/scheduler/main.c 2010-12-13 14:51:01.000000000 +0100 @@ -37,6 +37,8 @@ * usage() - Show scheduler usage. */ @@ -2739,8 +2747,8 @@ diff -up cups-1.4.5/scheduler/main.c.lspp cups-1.4.5/scheduler/main.c } diff -up cups-1.4.5/scheduler/printers.c.lspp cups-1.4.5/scheduler/printers.c ---- cups-1.4.5/scheduler/printers.c.lspp 2010-11-12 13:31:27.000000000 +0100 -+++ cups-1.4.5/scheduler/printers.c 2010-11-12 13:31:27.000000000 +0100 +--- cups-1.4.5/scheduler/printers.c.lspp 2010-12-13 14:51:01.000000000 +0100 ++++ cups-1.4.5/scheduler/printers.c 2010-12-13 14:51:01.000000000 +0100 @@ -59,6 +59,8 @@ * write_xml_string() - Write a string with XML escaping. */ @@ -2821,7 +2829,7 @@ diff -up cups-1.4.5/scheduler/printers.c.lspp cups-1.4.5/scheduler/printers.c } p->raw = 0; -@@ -5535,7 +5587,6 @@ write_irix_state(cupsd_printer_t *p) /* +@@ -5535,7 +5587,6 @@ write_irix_state(cupsd_printer_t *p) /* } #endif /* __sgi */ diff --git a/cups.spec b/cups.spec index e5c2ba5..cb5b2d3 100644 --- a/cups.spec +++ b/cups.spec @@ -8,7 +8,7 @@ Summary: Common Unix Printing System Name: cups Version: 1.4.5 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv2 Group: System Environment/Daemons Source: http://ftp.easysw.com/pub/cups/%{version}/cups-%{version}-source.tar.bz2 @@ -573,6 +573,9 @@ rm -rf $RPM_BUILD_ROOT %{php_extdir}/phpcups.so %changelog +* Mon Dec 13 2010 Jiri Popelka 1:1.4.5-3 +- Call avc_init() only once to not leak file descriptors (bug #654075). + * Fri Dec 03 2010 Jiri Popelka 1:1.4.5-2 - Changed subsystem lock file name in initscript so the service is correctly stopped on reboot or halt (bug #659391).