- 1.4.3.
- No longer need CVE-2009-3553, str3381, str3390, str3391, str3403, str3407, str3413, str3418, str3422, str3425, str3428, str3431, str3435, str3436, str3439, str3440, str3442, str3448, str3458, str3460, cups-sidechannel-intrs, negative-snmp-string-length, cups-media-empty-warning patches.
This commit is contained in:
parent
199ad7fdd6
commit
edc04bd8ed
@ -39,3 +39,4 @@ cups-1.4b2-source.tar.bz2
|
||||
cups-1.4b2-svn8404-source.tar.bz2
|
||||
cups-1.4rc1-source.tar.bz2
|
||||
cups-1.4.0-source.tar.bz2
|
||||
cups-1.4.3-source.tar.bz2
|
||||
|
@ -1,39 +0,0 @@
|
||||
diff -up cups-1.4.2/scheduler/select.c.CVE-2009-3553 cups-1.4.2/scheduler/select.c
|
||||
--- cups-1.4.2/scheduler/select.c.CVE-2009-3553 2009-07-15 00:07:52.000000000 +0100
|
||||
+++ cups-1.4.2/scheduler/select.c 2009-11-19 12:30:39.672976150 +0000
|
||||
@@ -454,7 +454,7 @@ cupsdDoSelect(long timeout) /* I - Time
|
||||
if (fdptr->read_cb && event->filter == EVFILT_READ)
|
||||
(*(fdptr->read_cb))(fdptr->data);
|
||||
|
||||
- if (fdptr->write_cb && event->filter == EVFILT_WRITE)
|
||||
+ if (fdptr->use > 1 && fdptr->write_cb && event->filter == EVFILT_WRITE)
|
||||
(*(fdptr->write_cb))(fdptr->data);
|
||||
|
||||
release_fd(fdptr);
|
||||
@@ -499,7 +499,7 @@ cupsdDoSelect(long timeout) /* I - Time
|
||||
if (fdptr->read_cb && (event->events & (EPOLLIN | EPOLLERR | EPOLLHUP)))
|
||||
(*(fdptr->read_cb))(fdptr->data);
|
||||
|
||||
- if (fdptr->write_cb && (event->events & (EPOLLOUT | EPOLLERR | EPOLLHUP)))
|
||||
+ if (fdptr->use > 1 && fdptr->write_cb && (event->events & (EPOLLOUT | EPOLLERR | EPOLLHUP)))
|
||||
(*(fdptr->write_cb))(fdptr->data);
|
||||
|
||||
release_fd(fdptr);
|
||||
@@ -590,7 +590,7 @@ cupsdDoSelect(long timeout) /* I - Time
|
||||
if (fdptr->read_cb && (pfd->revents & (POLLIN | POLLERR | POLLHUP)))
|
||||
(*(fdptr->read_cb))(fdptr->data);
|
||||
|
||||
- if (fdptr->write_cb && (pfd->revents & (POLLOUT | POLLERR | POLLHUP)))
|
||||
+ if (fdptr->use > 1 && fdptr->write_cb && (pfd->revents & (POLLOUT | POLLERR | POLLHUP)))
|
||||
(*(fdptr->write_cb))(fdptr->data);
|
||||
|
||||
release_fd(fdptr);
|
||||
@@ -645,7 +645,7 @@ cupsdDoSelect(long timeout) /* I - Time
|
||||
if (fdptr->read_cb && FD_ISSET(fdptr->fd, &cupsd_current_input))
|
||||
(*(fdptr->read_cb))(fdptr->data);
|
||||
|
||||
- if (fdptr->write_cb && FD_ISSET(fdptr->fd, &cupsd_current_output))
|
||||
+ if (fdptr->use > 1 && fdptr->write_cb && FD_ISSET(fdptr->fd, &cupsd_current_output))
|
||||
(*(fdptr->write_cb))(fdptr->data);
|
||||
|
||||
release_fd(fdptr);
|
@ -1,6 +1,6 @@
|
||||
diff -up cups-1.4.2/scheduler/select.c.CVE-2010-0302 cups-1.4.2/scheduler/select.c
|
||||
--- cups-1.4.2/scheduler/select.c.CVE-2010-0302 2010-03-05 10:37:49.990476887 +0000
|
||||
+++ cups-1.4.2/scheduler/select.c 2010-03-05 10:38:01.803478081 +0000
|
||||
diff -up cups-1.4.3/scheduler/select.c.CVE-2010-0302 cups-1.4.3/scheduler/select.c
|
||||
--- cups-1.4.3/scheduler/select.c.CVE-2010-0302 2010-01-14 23:40:19.000000000 +0100
|
||||
+++ cups-1.4.3/scheduler/select.c 2010-03-31 13:54:30.000000000 +0200
|
||||
@@ -454,7 +454,8 @@ cupsdDoSelect(long timeout) /* I - Time
|
||||
if (fdptr->read_cb && event->filter == EVFILT_READ)
|
||||
(*(fdptr->read_cb))(fdptr->data);
|
||||
@ -11,12 +11,11 @@ diff -up cups-1.4.2/scheduler/select.c.CVE-2010-0302 cups-1.4.2/scheduler/select
|
||||
(*(fdptr->write_cb))(fdptr->data);
|
||||
|
||||
release_fd(fdptr);
|
||||
@@ -499,7 +500,9 @@ cupsdDoSelect(long timeout) /* I - Time
|
||||
if (fdptr->read_cb && (event->events & (EPOLLIN | EPOLLERR | EPOLLHUP)))
|
||||
@@ -500,7 +501,8 @@ cupsdDoSelect(long timeout) /* I - Time
|
||||
(*(fdptr->read_cb))(fdptr->data);
|
||||
|
||||
- if (fdptr->use > 1 && fdptr->write_cb && (event->events & (EPOLLOUT | EPOLLERR | EPOLLHUP)))
|
||||
+ if (fdptr->use > 1 && fdptr->write_cb &&
|
||||
if (fdptr->use > 1 && fdptr->write_cb &&
|
||||
- (event->events & (EPOLLOUT | EPOLLERR | EPOLLHUP)))
|
||||
+ (event->events & (EPOLLOUT | EPOLLERR | EPOLLHUP)) &&
|
||||
+ !cupsArrayFind(cupsd_inactive_fds, fdptr))
|
||||
(*(fdptr->write_cb))(fdptr->data);
|
||||
|
172
cups-lspp.patch
172
cups-lspp.patch
@ -1,7 +1,7 @@
|
||||
diff -up cups-1.4.1/config.h.in.lspp cups-1.4.1/config.h.in
|
||||
--- cups-1.4.1/config.h.in.lspp 2009-09-14 16:59:30.108873598 +0100
|
||||
+++ cups-1.4.1/config.h.in 2009-09-14 16:59:30.122873526 +0100
|
||||
@@ -619,6 +619,13 @@
|
||||
diff -up cups-1.4.3/config.h.in.lspp cups-1.4.3/config.h.in
|
||||
--- cups-1.4.3/config.h.in.lspp 2010-03-31 14:08:57.000000000 +0200
|
||||
+++ cups-1.4.3/config.h.in 2010-03-31 14:08:57.000000000 +0200
|
||||
@@ -633,6 +633,13 @@
|
||||
#undef HAVE_TCPD_H
|
||||
|
||||
|
||||
@ -15,9 +15,9 @@ diff -up cups-1.4.1/config.h.in.lspp cups-1.4.1/config.h.in
|
||||
#endif /* !_CUPS_CONFIG_H_ */
|
||||
|
||||
/*
|
||||
diff -up /dev/null cups-1.4.1/config-scripts/cups-lspp.m4
|
||||
--- /dev/null 2009-09-14 09:02:25.290577766 +0100
|
||||
+++ cups-1.4.1/config-scripts/cups-lspp.m4 2009-09-14 16:59:30.124872629 +0100
|
||||
diff -up cups-1.4.3/config-scripts/cups-lspp.m4.lspp cups-1.4.3/config-scripts/cups-lspp.m4
|
||||
--- cups-1.4.3/config-scripts/cups-lspp.m4.lspp 2010-03-31 14:08:57.000000000 +0200
|
||||
+++ cups-1.4.3/config-scripts/cups-lspp.m4 2010-03-31 14:08:57.000000000 +0200
|
||||
@@ -0,0 +1,36 @@
|
||||
+dnl
|
||||
+dnl LSPP code for the Common UNIX Printing System (CUPS).
|
||||
@ -55,9 +55,9 @@ diff -up /dev/null cups-1.4.1/config-scripts/cups-lspp.m4
|
||||
+ ;;
|
||||
+ esac
|
||||
+fi
|
||||
diff -up cups-1.4.1/configure.in.lspp cups-1.4.1/configure.in
|
||||
--- cups-1.4.1/configure.in.lspp 2008-11-14 19:32:22.000000000 +0000
|
||||
+++ cups-1.4.1/configure.in 2009-09-14 16:59:30.125879233 +0100
|
||||
diff -up cups-1.4.3/configure.in.lspp cups-1.4.3/configure.in
|
||||
--- cups-1.4.3/configure.in.lspp 2008-11-14 20:32:22.000000000 +0100
|
||||
+++ cups-1.4.3/configure.in 2010-03-31 14:08:57.000000000 +0200
|
||||
@@ -42,6 +42,8 @@ sinclude(config-scripts/cups-pap.m4)
|
||||
sinclude(config-scripts/cups-pdf.m4)
|
||||
sinclude(config-scripts/cups-scripting.m4)
|
||||
@ -67,9 +67,9 @@ diff -up cups-1.4.1/configure.in.lspp cups-1.4.1/configure.in
|
||||
INSTALL_LANGUAGES=""
|
||||
UNINSTALL_LANGUAGES=""
|
||||
LANGFILES=""
|
||||
diff -up cups-1.4.1/cups/cups.h.lspp cups-1.4.1/cups/cups.h
|
||||
--- cups-1.4.1/cups/cups.h.lspp 2009-08-28 18:51:05.000000000 +0100
|
||||
+++ cups-1.4.1/cups/cups.h 2009-09-14 16:59:30.127873074 +0100
|
||||
diff -up cups-1.4.3/cups/cups.h.lspp cups-1.4.3/cups/cups.h
|
||||
--- cups-1.4.3/cups/cups.h.lspp 2009-11-16 18:11:56.000000000 +0100
|
||||
+++ cups-1.4.3/cups/cups.h 2010-03-31 14:08:57.000000000 +0200
|
||||
@@ -15,6 +15,9 @@
|
||||
* This file is subject to the Apple OS-Developed Software exception.
|
||||
*/
|
||||
@ -93,9 +93,9 @@ diff -up cups-1.4.1/cups/cups.h.lspp cups-1.4.1/cups/cups.h
|
||||
/*
|
||||
* Types and structures...
|
||||
*/
|
||||
diff -up cups-1.4.1/data/Makefile.lspp cups-1.4.1/data/Makefile
|
||||
--- cups-1.4.1/data/Makefile.lspp 2008-11-12 19:30:57.000000000 +0000
|
||||
+++ cups-1.4.1/data/Makefile 2009-09-14 16:59:30.129874067 +0100
|
||||
diff -up cups-1.4.3/data/Makefile.lspp cups-1.4.3/data/Makefile
|
||||
--- cups-1.4.3/data/Makefile.lspp 2008-11-12 20:30:57.000000000 +0100
|
||||
+++ cups-1.4.3/data/Makefile 2010-03-31 14:08:57.000000000 +0200
|
||||
@@ -25,7 +25,10 @@ BANNERS = \
|
||||
secret \
|
||||
standard \
|
||||
@ -108,9 +108,9 @@ diff -up cups-1.4.1/data/Makefile.lspp cups-1.4.1/data/Makefile
|
||||
|
||||
CHARMAPS = \
|
||||
euc-cn.txt \
|
||||
diff -up /dev/null cups-1.4.1/data/mls
|
||||
--- /dev/null 2009-09-14 09:02:25.290577766 +0100
|
||||
+++ cups-1.4.1/data/mls 2009-09-14 16:59:30.131873095 +0100
|
||||
diff -up cups-1.4.3/data/mls.lspp cups-1.4.3/data/mls
|
||||
--- cups-1.4.3/data/mls.lspp 2010-03-31 14:08:57.000000000 +0200
|
||||
+++ cups-1.4.3/data/mls 2010-03-31 14:08:57.000000000 +0200
|
||||
@@ -0,0 +1,261 @@
|
||||
+%!PS-Adobe-3.0
|
||||
+%%BoundingBox: 0 0 612 792
|
||||
@ -373,9 +373,9 @@ diff -up /dev/null cups-1.4.1/data/mls
|
||||
+% End of "$Id: mls_template,v 1.1 2005/06/27 18:44:46 colmo Exp $".
|
||||
+%
|
||||
+%%EOF
|
||||
diff -up /dev/null cups-1.4.1/data/selinux
|
||||
--- /dev/null 2009-09-14 09:02:25.290577766 +0100
|
||||
+++ cups-1.4.1/data/selinux 2009-09-14 16:59:30.133872489 +0100
|
||||
diff -up cups-1.4.3/data/selinux.lspp cups-1.4.3/data/selinux
|
||||
--- cups-1.4.3/data/selinux.lspp 2010-03-31 14:08:57.000000000 +0200
|
||||
+++ cups-1.4.3/data/selinux 2010-03-31 14:08:57.000000000 +0200
|
||||
@@ -0,0 +1,261 @@
|
||||
+%!PS-Adobe-3.0
|
||||
+%%BoundingBox: 0 0 612 792
|
||||
@ -638,9 +638,9 @@ diff -up /dev/null cups-1.4.1/data/selinux
|
||||
+% End of "$Id: mls_template,v 1.1 2005/06/27 18:44:46 colmo Exp $".
|
||||
+%
|
||||
+%%EOF
|
||||
diff -up /dev/null cups-1.4.1/data/te
|
||||
--- /dev/null 2009-09-14 09:02:25.290577766 +0100
|
||||
+++ cups-1.4.1/data/te 2009-09-14 16:59:30.135873116 +0100
|
||||
diff -up cups-1.4.3/data/te.lspp cups-1.4.3/data/te
|
||||
--- cups-1.4.3/data/te.lspp 2010-03-31 14:08:57.000000000 +0200
|
||||
+++ cups-1.4.3/data/te 2010-03-31 14:08:57.000000000 +0200
|
||||
@@ -0,0 +1,261 @@
|
||||
+%!PS-Adobe-3.0
|
||||
+%%BoundingBox: 0 0 612 792
|
||||
@ -903,9 +903,9 @@ diff -up /dev/null cups-1.4.1/data/te
|
||||
+% End of "$Id: mls_template,v 1.1 2005/06/27 18:44:46 colmo Exp $".
|
||||
+%
|
||||
+%%EOF
|
||||
diff -up cups-1.4.1/filter/common.c.lspp cups-1.4.1/filter/common.c
|
||||
--- cups-1.4.1/filter/common.c.lspp 2007-07-11 22:46:42.000000000 +0100
|
||||
+++ cups-1.4.1/filter/common.c 2009-09-14 16:59:30.137872500 +0100
|
||||
diff -up cups-1.4.3/filter/common.c.lspp cups-1.4.3/filter/common.c
|
||||
--- cups-1.4.3/filter/common.c.lspp 2007-07-11 23:46:42.000000000 +0200
|
||||
+++ cups-1.4.3/filter/common.c 2010-03-31 14:08:57.000000000 +0200
|
||||
@@ -30,6 +30,12 @@
|
||||
* Include necessary headers...
|
||||
*/
|
||||
@ -1074,10 +1074,10 @@ diff -up cups-1.4.1/filter/common.c.lspp cups-1.4.1/filter/common.c
|
||||
|
||||
|
||||
/*
|
||||
diff -up cups-1.4.1/filter/pstops.c.lspp cups-1.4.1/filter/pstops.c
|
||||
--- cups-1.4.1/filter/pstops.c.lspp 2009-09-14 16:59:29.803998275 +0100
|
||||
+++ cups-1.4.1/filter/pstops.c 2009-09-14 16:59:30.141872862 +0100
|
||||
@@ -3242,6 +3242,18 @@ write_label_prolog(pstops_doc_t *doc, /*
|
||||
diff -up cups-1.4.3/filter/pstops.c.lspp cups-1.4.3/filter/pstops.c
|
||||
--- cups-1.4.3/filter/pstops.c.lspp 2010-03-31 14:08:57.000000000 +0200
|
||||
+++ cups-1.4.3/filter/pstops.c 2010-03-31 14:08:57.000000000 +0200
|
||||
@@ -3275,6 +3275,18 @@ write_label_prolog(pstops_doc_t *doc, /*
|
||||
{
|
||||
const char *classification; /* CLASSIFICATION environment variable */
|
||||
const char *ptr; /* Temporary string pointer */
|
||||
@ -1096,7 +1096,7 @@ diff -up cups-1.4.1/filter/pstops.c.lspp cups-1.4.1/filter/pstops.c
|
||||
|
||||
|
||||
/*
|
||||
@@ -3264,6 +3276,124 @@ write_label_prolog(pstops_doc_t *doc, /*
|
||||
@@ -3297,6 +3309,124 @@ write_label_prolog(pstops_doc_t *doc, /*
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1221,7 +1221,7 @@ diff -up cups-1.4.1/filter/pstops.c.lspp cups-1.4.1/filter/pstops.c
|
||||
/*
|
||||
* Set the classification + page label string...
|
||||
*/
|
||||
@@ -3342,7 +3472,10 @@ write_label_prolog(pstops_doc_t *doc, /*
|
||||
@@ -3375,7 +3505,10 @@ write_label_prolog(pstops_doc_t *doc, /*
|
||||
doc_printf(doc, " %.0f moveto ESPpl show\n", top - 14.0);
|
||||
doc_puts(doc, "pop\n");
|
||||
doc_puts(doc, "}bind put\n");
|
||||
@ -1232,9 +1232,9 @@ diff -up cups-1.4.1/filter/pstops.c.lspp cups-1.4.1/filter/pstops.c
|
||||
|
||||
|
||||
/*
|
||||
diff -up cups-1.4.1/Makedefs.in.lspp cups-1.4.1/Makedefs.in
|
||||
--- cups-1.4.1/Makedefs.in.lspp 2009-09-14 16:59:30.024872775 +0100
|
||||
+++ cups-1.4.1/Makedefs.in 2009-09-14 16:59:30.143872406 +0100
|
||||
diff -up cups-1.4.3/Makedefs.in.lspp cups-1.4.3/Makedefs.in
|
||||
--- cups-1.4.3/Makedefs.in.lspp 2010-03-31 14:08:57.000000000 +0200
|
||||
+++ cups-1.4.3/Makedefs.in 2010-03-31 14:08:57.000000000 +0200
|
||||
@@ -146,7 +146,7 @@ LIBCUPSORDER = @LIBCUPSORDER@
|
||||
LIBCUPSIMAGEORDER = @LIBCUPSIMAGEORDER@
|
||||
LINKCUPS = @LINKCUPS@ $(SSLLIBS) $(DNSSDLIBS)
|
||||
@ -1253,9 +1253,9 @@ diff -up cups-1.4.1/Makedefs.in.lspp cups-1.4.1/Makedefs.in
|
||||
.SUFFIXES: .1 .1.gz .1m .1m.gz .3 .3.gz .5 .5.gz .7 .7.gz .8 .8.gz .a .c .cxx .h .man .o .32.o .64.o .gz
|
||||
|
||||
.c.o:
|
||||
diff -up cups-1.4.1/scheduler/client.c.lspp cups-1.4.1/scheduler/client.c
|
||||
--- cups-1.4.1/scheduler/client.c.lspp 2009-07-15 00:02:05.000000000 +0100
|
||||
+++ cups-1.4.1/scheduler/client.c 2009-09-14 16:59:30.148872510 +0100
|
||||
diff -up cups-1.4.3/scheduler/client.c.lspp cups-1.4.3/scheduler/client.c
|
||||
--- cups-1.4.3/scheduler/client.c.lspp 2009-07-15 01:02:05.000000000 +0200
|
||||
+++ cups-1.4.3/scheduler/client.c 2010-03-31 14:08:57.000000000 +0200
|
||||
@@ -44,6 +44,7 @@
|
||||
* valid_host() - Is the Host: field valid?
|
||||
* write_file() - Send a file via HTTP.
|
||||
@ -1476,9 +1476,9 @@ diff -up cups-1.4.1/scheduler/client.c.lspp cups-1.4.1/scheduler/client.c
|
||||
/*
|
||||
* 'pipe_command()' - Pipe the output of a command to the remote client.
|
||||
*/
|
||||
diff -up cups-1.4.1/scheduler/client.h.lspp cups-1.4.1/scheduler/client.h
|
||||
--- cups-1.4.1/scheduler/client.h.lspp 2009-05-26 23:01:23.000000000 +0100
|
||||
+++ cups-1.4.1/scheduler/client.h 2009-09-14 16:59:30.150872942 +0100
|
||||
diff -up cups-1.4.3/scheduler/client.h.lspp cups-1.4.3/scheduler/client.h
|
||||
--- cups-1.4.3/scheduler/client.h.lspp 2009-05-27 00:01:23.000000000 +0200
|
||||
+++ cups-1.4.3/scheduler/client.h 2010-03-31 14:08:57.000000000 +0200
|
||||
@@ -18,6 +18,13 @@
|
||||
#endif /* HAVE_AUTHORIZATION_H */
|
||||
|
||||
@ -1514,9 +1514,9 @@ diff -up cups-1.4.1/scheduler/client.h.lspp cups-1.4.1/scheduler/client.h
|
||||
|
||||
|
||||
/*
|
||||
diff -up cups-1.4.1/scheduler/conf.c.lspp cups-1.4.1/scheduler/conf.c
|
||||
--- cups-1.4.1/scheduler/conf.c.lspp 2009-09-14 16:59:29.837998036 +0100
|
||||
+++ cups-1.4.1/scheduler/conf.c 2009-09-14 16:59:30.155872264 +0100
|
||||
diff -up cups-1.4.3/scheduler/conf.c.lspp cups-1.4.3/scheduler/conf.c
|
||||
--- cups-1.4.3/scheduler/conf.c.lspp 2010-03-31 14:08:57.000000000 +0200
|
||||
+++ cups-1.4.3/scheduler/conf.c 2010-03-31 14:08:57.000000000 +0200
|
||||
@@ -29,6 +29,7 @@
|
||||
* read_configuration() - Read a configuration file.
|
||||
* read_location() - Read a <Location path> definition.
|
||||
@ -1626,9 +1626,9 @@ diff -up cups-1.4.1/scheduler/conf.c.lspp cups-1.4.1/scheduler/conf.c
|
||||
|
||||
/*
|
||||
* 'read_policy()' - Read a <Policy name> definition.
|
||||
diff -up cups-1.4.1/scheduler/conf.h.lspp cups-1.4.1/scheduler/conf.h
|
||||
--- cups-1.4.1/scheduler/conf.h.lspp 2009-09-14 16:59:29.839997456 +0100
|
||||
+++ cups-1.4.1/scheduler/conf.h 2009-09-14 16:59:30.157872484 +0100
|
||||
diff -up cups-1.4.3/scheduler/conf.h.lspp cups-1.4.3/scheduler/conf.h
|
||||
--- cups-1.4.3/scheduler/conf.h.lspp 2010-03-31 14:08:57.000000000 +0200
|
||||
+++ cups-1.4.3/scheduler/conf.h 2010-03-31 14:08:57.000000000 +0200
|
||||
@@ -253,6 +253,12 @@ VAR char *ServerKey VALUE(NULL);
|
||||
VAR int SSLOptions VALUE(CUPSD_SSL_NONE);
|
||||
/* SSL/TLS options */
|
||||
@ -1652,9 +1652,9 @@ diff -up cups-1.4.1/scheduler/conf.h.lspp cups-1.4.1/scheduler/conf.h
|
||||
|
||||
/*
|
||||
* Prototypes...
|
||||
diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c
|
||||
--- cups-1.4.1/scheduler/ipp.c.lspp 2009-09-14 16:59:29.974871379 +0100
|
||||
+++ cups-1.4.1/scheduler/ipp.c 2009-09-14 16:59:30.168872218 +0100
|
||||
diff -up cups-1.4.3/scheduler/ipp.c.lspp cups-1.4.3/scheduler/ipp.c
|
||||
--- cups-1.4.3/scheduler/ipp.c.lspp 2010-03-31 14:08:57.000000000 +0200
|
||||
+++ cups-1.4.3/scheduler/ipp.c 2010-03-31 14:11:37.000000000 +0200
|
||||
@@ -41,6 +41,7 @@
|
||||
* cancel_all_jobs() - Cancel all print jobs.
|
||||
* cancel_job() - Cancel a print job.
|
||||
@ -1698,7 +1698,7 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c
|
||||
static int check_quotas(cupsd_client_t *con, cupsd_printer_t *p);
|
||||
static ipp_attribute_t *copy_attribute(ipp_t *to, ipp_attribute_t *attr,
|
||||
int quickcopy);
|
||||
@@ -1338,6 +1353,21 @@ add_job(cupsd_client_t *con, /* I - Cl
|
||||
@@ -1337,6 +1352,21 @@ add_job(cupsd_client_t *con, /* I - Cl
|
||||
int kbytes; /* Size of print file */
|
||||
int i; /* Looping var */
|
||||
int lowerpagerange; /* Page range bound */
|
||||
@ -1720,9 +1720,9 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c
|
||||
|
||||
|
||||
cupsdLogMessage(CUPSD_LOG_DEBUG2, "add_job(%p[%d], %p(%s), %p(%s/%s))",
|
||||
@@ -1554,6 +1584,104 @@ add_job(cupsd_client_t *con, /* I - Cl
|
||||
@@ -1550,6 +1580,104 @@ add_job(cupsd_client_t *con, /* I - Cl
|
||||
ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_NAME, "job-name", NULL,
|
||||
title = "Untitled");
|
||||
"Untitled");
|
||||
|
||||
+#ifdef WITH_LSPP
|
||||
+ if (is_lspp_config())
|
||||
@ -1825,7 +1825,7 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c
|
||||
if ((job = cupsdAddJob(priority, printer->name)) == NULL)
|
||||
{
|
||||
send_ipp_status(con, IPP_INTERNAL_ERROR,
|
||||
@@ -1562,6 +1690,32 @@ add_job(cupsd_client_t *con, /* I - Cl
|
||||
@@ -1558,6 +1686,32 @@ add_job(cupsd_client_t *con, /* I - Cl
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
@ -1858,7 +1858,7 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c
|
||||
job->dtype = printer->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT |
|
||||
CUPS_PRINTER_REMOTE);
|
||||
job->attrs = con->request;
|
||||
@@ -1769,6 +1923,29 @@ add_job(cupsd_client_t *con, /* I - Cl
|
||||
@@ -1763,6 +1917,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]);
|
||||
}
|
||||
@ -1888,7 +1888,7 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c
|
||||
|
||||
job->job_sheets = attr;
|
||||
|
||||
@@ -1799,6 +1976,9 @@ add_job(cupsd_client_t *con, /* I - Cl
|
||||
@@ -1793,6 +1970,9 @@ add_job(cupsd_client_t *con, /* I - Cl
|
||||
"job-sheets=\"%s,none\", "
|
||||
"job-originating-user-name=\"%s\"",
|
||||
Classification, job->username);
|
||||
@ -1898,7 +1898,7 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c
|
||||
}
|
||||
else if (attr->num_values == 2 &&
|
||||
strcmp(attr->values[0].string.text,
|
||||
@@ -1817,6 +1997,9 @@ add_job(cupsd_client_t *con, /* I - Cl
|
||||
@@ -1811,6 +1991,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);
|
||||
@ -1908,7 +1908,7 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c
|
||||
}
|
||||
else if (strcmp(attr->values[0].string.text, Classification) &&
|
||||
strcmp(attr->values[0].string.text, "none") &&
|
||||
@@ -1837,6 +2020,9 @@ add_job(cupsd_client_t *con, /* I - Cl
|
||||
@@ -1831,6 +2014,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);
|
||||
@ -1918,7 +1918,7 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c
|
||||
}
|
||||
}
|
||||
else if (strcmp(attr->values[0].string.text, Classification) &&
|
||||
@@ -1877,8 +2063,52 @@ add_job(cupsd_client_t *con, /* I - Cl
|
||||
@@ -1871,8 +2057,52 @@ add_job(cupsd_client_t *con, /* I - Cl
|
||||
"job-sheets=\"%s\", "
|
||||
"job-originating-user-name=\"%s\"",
|
||||
Classification, job->username);
|
||||
@ -2199,7 +2199,7 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c
|
||||
if (!strcmp(s, "printer-name"))
|
||||
{
|
||||
cupsFilePuts(out, job->dest);
|
||||
@@ -6829,6 +7259,22 @@ get_job_attrs(cupsd_client_t *con, /* I
|
||||
@@ -6844,6 +7274,22 @@ get_job_attrs(cupsd_client_t *con, /* I
|
||||
return;
|
||||
}
|
||||
|
||||
@ -2222,7 +2222,7 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c
|
||||
/*
|
||||
* Copy attributes...
|
||||
*/
|
||||
@@ -7048,6 +7494,11 @@ get_jobs(cupsd_client_t *con, /* I - C
|
||||
@@ -7074,6 +7520,11 @@ get_jobs(cupsd_client_t *con, /* I - C
|
||||
if (username[0] && strcasecmp(username, job->username))
|
||||
continue;
|
||||
|
||||
@ -2234,7 +2234,7 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c
|
||||
if (count > 0)
|
||||
ippAddSeparator(con->response);
|
||||
|
||||
@@ -11430,6 +11881,11 @@ validate_user(cupsd_job_t *job, /* I
|
||||
@@ -11460,6 +11911,11 @@ validate_user(cupsd_job_t *job, /* I
|
||||
|
||||
strlcpy(username, get_username(con), userlen);
|
||||
|
||||
@ -2246,9 +2246,9 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c
|
||||
/*
|
||||
* Check the username against the owner...
|
||||
*/
|
||||
diff -up cups-1.4.1/scheduler/job.c.lspp cups-1.4.1/scheduler/job.c
|
||||
--- cups-1.4.1/scheduler/job.c.lspp 2009-09-14 16:59:30.058872907 +0100
|
||||
+++ cups-1.4.1/scheduler/job.c 2009-09-14 17:00:42.616998003 +0100
|
||||
diff -up cups-1.4.3/scheduler/job.c.lspp cups-1.4.3/scheduler/job.c
|
||||
--- cups-1.4.3/scheduler/job.c.lspp 2010-03-31 14:08:57.000000000 +0200
|
||||
+++ cups-1.4.3/scheduler/job.c 2010-03-31 14:08:57.000000000 +0200
|
||||
@@ -66,6 +66,9 @@
|
||||
* update_job_attrs() - Update the job-printer-* attributes.
|
||||
*/
|
||||
@ -2403,7 +2403,7 @@ diff -up cups-1.4.1/scheduler/job.c.lspp cups-1.4.1/scheduler/job.c
|
||||
job->sheets = ippFindAttribute(job->attrs, "job-media-sheets-completed",
|
||||
IPP_TAG_INTEGER);
|
||||
job->job_sheets = ippFindAttribute(job->attrs, "job-sheets", IPP_TAG_NAME);
|
||||
@@ -1975,6 +2069,14 @@ cupsdSaveJob(cupsd_job_t *job) /* I - J
|
||||
@@ -2013,6 +2107,14 @@ cupsdSaveJob(cupsd_job_t *job) /* I - J
|
||||
{
|
||||
char filename[1024]; /* Job control filename */
|
||||
cups_file_t *fp; /* Job file */
|
||||
@ -2418,7 +2418,7 @@ diff -up cups-1.4.1/scheduler/job.c.lspp cups-1.4.1/scheduler/job.c
|
||||
|
||||
|
||||
cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdSaveJob(job=%p(%d)): job->attrs=%p",
|
||||
@@ -1993,6 +2095,76 @@ cupsdSaveJob(cupsd_job_t *job) /* I - J
|
||||
@@ -2031,6 +2133,76 @@ cupsdSaveJob(cupsd_job_t *job) /* I - J
|
||||
fchmod(cupsFileNumber(fp), 0600);
|
||||
fchown(cupsFileNumber(fp), RunUser, Group);
|
||||
|
||||
@ -2495,7 +2495,7 @@ diff -up cups-1.4.1/scheduler/job.c.lspp cups-1.4.1/scheduler/job.c
|
||||
job->attrs->state = IPP_IDLE;
|
||||
|
||||
if (ippWriteIO(fp, (ipp_iocb_t)cupsFileWrite, 1, NULL,
|
||||
@@ -3138,6 +3310,18 @@ get_options(cupsd_job_t *job, /* I - Jo
|
||||
@@ -3177,6 +3349,18 @@ get_options(cupsd_job_t *job, /* I - Jo
|
||||
banner_page)
|
||||
continue;
|
||||
|
||||
@ -2514,7 +2514,7 @@ diff -up cups-1.4.1/scheduler/job.c.lspp cups-1.4.1/scheduler/job.c
|
||||
/*
|
||||
* Otherwise add them to the list...
|
||||
*/
|
||||
@@ -3810,6 +3994,19 @@ static void
|
||||
@@ -3849,6 +4033,19 @@ static void
|
||||
start_job(cupsd_job_t *job, /* I - Job ID */
|
||||
cupsd_printer_t *printer) /* I - Printer to print job */
|
||||
{
|
||||
@ -2534,7 +2534,7 @@ diff -up cups-1.4.1/scheduler/job.c.lspp cups-1.4.1/scheduler/job.c
|
||||
cupsdLogMessage(CUPSD_LOG_DEBUG2, "start_job(job=%p(%d), printer=%p(%s))",
|
||||
job, job->id, printer, printer->name);
|
||||
|
||||
@@ -3932,6 +4129,106 @@ start_job(cupsd_job_t *job, /* I -
|
||||
@@ -3971,6 +4168,106 @@ start_job(cupsd_job_t *job, /* I -
|
||||
fcntl(job->side_pipes[1], F_SETFD,
|
||||
fcntl(job->side_pipes[1], F_GETFD) | FD_CLOEXEC);
|
||||
|
||||
@ -2641,9 +2641,9 @@ diff -up cups-1.4.1/scheduler/job.c.lspp cups-1.4.1/scheduler/job.c
|
||||
/*
|
||||
* Now start the first file in the job...
|
||||
*/
|
||||
diff -up cups-1.4.1/scheduler/job.h.lspp cups-1.4.1/scheduler/job.h
|
||||
--- cups-1.4.1/scheduler/job.h.lspp 2009-05-11 23:46:01.000000000 +0100
|
||||
+++ cups-1.4.1/scheduler/job.h 2009-09-14 16:59:30.177872674 +0100
|
||||
diff -up cups-1.4.3/scheduler/job.h.lspp cups-1.4.3/scheduler/job.h
|
||||
--- cups-1.4.3/scheduler/job.h.lspp 2009-05-12 00:46:01.000000000 +0200
|
||||
+++ cups-1.4.3/scheduler/job.h 2010-03-31 14:08:57.000000000 +0200
|
||||
@@ -13,6 +13,13 @@
|
||||
* file is missing or damaged, see the license at "http://www.cups.org/".
|
||||
*/
|
||||
@ -2669,9 +2669,9 @@ diff -up cups-1.4.1/scheduler/job.h.lspp cups-1.4.1/scheduler/job.h
|
||||
};
|
||||
|
||||
typedef struct cupsd_joblog_s /**** Job log message ****/
|
||||
diff -up cups-1.4.1/scheduler/main.c.lspp cups-1.4.1/scheduler/main.c
|
||||
--- cups-1.4.1/scheduler/main.c.lspp 2009-09-14 16:59:29.925872130 +0100
|
||||
+++ cups-1.4.1/scheduler/main.c 2009-09-14 16:59:30.180872667 +0100
|
||||
diff -up cups-1.4.3/scheduler/main.c.lspp cups-1.4.3/scheduler/main.c
|
||||
--- cups-1.4.3/scheduler/main.c.lspp 2010-03-31 14:08:57.000000000 +0200
|
||||
+++ cups-1.4.3/scheduler/main.c 2010-03-31 14:08:57.000000000 +0200
|
||||
@@ -35,6 +35,8 @@
|
||||
* usage() - Show scheduler usage.
|
||||
*/
|
||||
@ -2701,7 +2701,7 @@ diff -up cups-1.4.1/scheduler/main.c.lspp cups-1.4.1/scheduler/main.c
|
||||
|
||||
|
||||
#ifdef HAVE_GETEUID
|
||||
@@ -462,6 +470,25 @@ main(int argc, /* I - Number of comm
|
||||
@@ -465,6 +473,25 @@ main(int argc, /* I - Number of comm
|
||||
#endif /* DEBUG */
|
||||
}
|
||||
|
||||
@ -2727,7 +2727,7 @@ diff -up cups-1.4.1/scheduler/main.c.lspp cups-1.4.1/scheduler/main.c
|
||||
/*
|
||||
* Set the timezone info...
|
||||
*/
|
||||
@@ -1230,6 +1257,11 @@ main(int argc, /* I - Number of comm
|
||||
@@ -1235,6 +1262,11 @@ main(int argc, /* I - Number of comm
|
||||
|
||||
cupsdStopSelect();
|
||||
|
||||
@ -2739,9 +2739,9 @@ diff -up cups-1.4.1/scheduler/main.c.lspp cups-1.4.1/scheduler/main.c
|
||||
return (!stop_scheduler);
|
||||
}
|
||||
|
||||
diff -up cups-1.4.1/scheduler/printers.c.lspp cups-1.4.1/scheduler/printers.c
|
||||
--- cups-1.4.1/scheduler/printers.c.lspp 2009-09-14 16:59:29.866997809 +0100
|
||||
+++ cups-1.4.1/scheduler/printers.c 2009-09-14 16:59:30.185871787 +0100
|
||||
diff -up cups-1.4.3/scheduler/printers.c.lspp cups-1.4.3/scheduler/printers.c
|
||||
--- cups-1.4.3/scheduler/printers.c.lspp 2010-03-31 14:08:57.000000000 +0200
|
||||
+++ cups-1.4.3/scheduler/printers.c 2010-03-31 14:08:57.000000000 +0200
|
||||
@@ -58,6 +58,8 @@
|
||||
* write_xml_string() - Write a string with XML escaping.
|
||||
*/
|
||||
@ -2762,7 +2762,7 @@ diff -up cups-1.4.1/scheduler/printers.c.lspp cups-1.4.1/scheduler/printers.c
|
||||
|
||||
/*
|
||||
* 'cupsdAddPrinter()' - Add a printer to the system.
|
||||
@@ -2166,6 +2172,13 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p)
|
||||
@@ -2173,6 +2179,13 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p)
|
||||
"username",
|
||||
"password"
|
||||
};
|
||||
@ -2776,7 +2776,7 @@ diff -up cups-1.4.1/scheduler/printers.c.lspp cups-1.4.1/scheduler/printers.c
|
||||
|
||||
|
||||
DEBUG_printf(("cupsdSetPrinterAttrs: entering name = %s, type = %x\n", p->name,
|
||||
@@ -2296,6 +2309,45 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p)
|
||||
@@ -2303,6 +2316,45 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p)
|
||||
attr->values[1].string.text = _cupsStrAlloc(Classification ?
|
||||
Classification : p->job_sheets[1]);
|
||||
}
|
||||
@ -2822,7 +2822,7 @@ diff -up cups-1.4.1/scheduler/printers.c.lspp cups-1.4.1/scheduler/printers.c
|
||||
}
|
||||
|
||||
p->raw = 0;
|
||||
@@ -4827,7 +4876,6 @@ write_irix_state(cupsd_printer_t *p) /*
|
||||
@@ -4834,7 +4886,6 @@ write_irix_state(cupsd_printer_t *p) /*
|
||||
}
|
||||
#endif /* __sgi */
|
||||
|
||||
|
@ -1,132 +0,0 @@
|
||||
diff -up cups-1.4.2/backend/backend-private.h.media-empty-warning cups-1.4.2/backend/backend-private.h
|
||||
--- cups-1.4.2/backend/backend-private.h.media-empty-warning 2009-08-31 19:45:43.000000000 +0100
|
||||
+++ cups-1.4.2/backend/backend-private.h 2009-12-08 11:22:27.859488572 +0000
|
||||
@@ -280,7 +280,8 @@ extern int backendNetworkSideCB(int pri
|
||||
int snmp_fd, http_addr_t *addr,
|
||||
int use_bc);
|
||||
extern ssize_t backendRunLoop(int print_fd, int device_fd, int snmp_fd,
|
||||
- http_addr_t *addr, int use_bc,
|
||||
+ http_addr_t *addr, int use_bc,
|
||||
+ int update_state,
|
||||
int (*side_cb)(int print_fd,
|
||||
int device_fd,
|
||||
int snmp_fd,
|
||||
diff -up cups-1.4.2/backend/ipp.c.media-empty-warning cups-1.4.2/backend/ipp.c
|
||||
--- cups-1.4.2/backend/ipp.c.media-empty-warning 2009-12-08 11:22:12.388488617 +0000
|
||||
+++ cups-1.4.2/backend/ipp.c 2009-12-08 11:22:27.860488582 +0000
|
||||
@@ -498,7 +498,7 @@ main(int argc, /* I - Number of comm
|
||||
|
||||
_cupsLangPuts(stderr, _("INFO: Copying print data...\n"));
|
||||
|
||||
- tbytes = backendRunLoop(-1, fd, snmp_fd, &(addrlist->addr), 0,
|
||||
+ tbytes = backendRunLoop(-1, fd, snmp_fd, &(addrlist->addr), 0, 0,
|
||||
backendNetworkSideCB);
|
||||
|
||||
if (snmp_fd >= 0)
|
||||
diff -up cups-1.4.2/backend/lpd.c.media-empty-warning cups-1.4.2/backend/lpd.c
|
||||
--- cups-1.4.2/backend/lpd.c.media-empty-warning 2009-06-26 19:26:36.000000000 +0100
|
||||
+++ cups-1.4.2/backend/lpd.c 2009-12-08 11:22:27.861488697 +0000
|
||||
@@ -447,7 +447,8 @@ main(int argc, /* I - Number of comm
|
||||
|
||||
_cupsLangPuts(stderr, _("INFO: Copying print data...\n"));
|
||||
|
||||
- backendRunLoop(-1, fd, snmp_fd, &(addrlist->addr), 0, backendNetworkSideCB);
|
||||
+ backendRunLoop(-1, fd, snmp_fd, &(addrlist->addr), 0, 0,
|
||||
+ backendNetworkSideCB);
|
||||
|
||||
if (snmp_fd >= 0)
|
||||
_cupsSNMPClose(snmp_fd);
|
||||
diff -up cups-1.4.2/backend/parallel.c.media-empty-warning cups-1.4.2/backend/parallel.c
|
||||
--- cups-1.4.2/backend/parallel.c.media-empty-warning 2009-08-31 19:45:43.000000000 +0100
|
||||
+++ cups-1.4.2/backend/parallel.c 2009-12-08 11:22:27.862488185 +0000
|
||||
@@ -284,7 +284,7 @@ main(int argc, /* I - Number of comm
|
||||
lseek(print_fd, 0, SEEK_SET);
|
||||
}
|
||||
|
||||
- tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, side_cb);
|
||||
+ tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, 1, side_cb);
|
||||
|
||||
if (print_fd != 0 && tbytes >= 0)
|
||||
_cupsLangPrintf(stderr,
|
||||
diff -up cups-1.4.2/backend/runloop.c.media-empty-warning cups-1.4.2/backend/runloop.c
|
||||
--- cups-1.4.2/backend/runloop.c.media-empty-warning 2009-08-31 19:45:43.000000000 +0100
|
||||
+++ cups-1.4.2/backend/runloop.c 2009-12-08 11:22:27.862488185 +0000
|
||||
@@ -147,6 +147,7 @@ backendRunLoop(
|
||||
int snmp_fd, /* I - SNMP socket or -1 if none */
|
||||
http_addr_t *addr, /* I - Address of device */
|
||||
int use_bc, /* I - Use back-channel? */
|
||||
+ int update_state, /* I - Update printer-state-reasons? */
|
||||
int (*side_cb)(int, int, int, http_addr_t *, int))
|
||||
/* I - Side-channel callback */
|
||||
{
|
||||
@@ -245,7 +246,7 @@ backendRunLoop(
|
||||
* Pause printing to clear any pending errors...
|
||||
*/
|
||||
|
||||
- if (errno == ENXIO && offline != 1)
|
||||
+ if (errno == ENXIO && offline != 1 && update_state)
|
||||
{
|
||||
fputs("STATE: +offline-report\n", stderr);
|
||||
_cupsLangPuts(stderr, _("INFO: Printer is currently offline.\n"));
|
||||
@@ -351,7 +352,7 @@ backendRunLoop(
|
||||
|
||||
if (errno == ENOSPC)
|
||||
{
|
||||
- if (paperout != 1)
|
||||
+ if (paperout != 1 && update_state)
|
||||
{
|
||||
fputs("STATE: +media-empty-warning\n", stderr);
|
||||
_cupsLangPuts(stderr, _("ERROR: Out of paper!\n"));
|
||||
@@ -360,7 +361,7 @@ backendRunLoop(
|
||||
}
|
||||
else if (errno == ENXIO)
|
||||
{
|
||||
- if (offline != 1)
|
||||
+ if (offline != 1 && update_state)
|
||||
{
|
||||
fputs("STATE: +offline-report\n", stderr);
|
||||
_cupsLangPuts(stderr, _("INFO: Printer is currently off-line.\n"));
|
||||
@@ -376,13 +377,13 @@ backendRunLoop(
|
||||
}
|
||||
else
|
||||
{
|
||||
- if (paperout)
|
||||
+ if (paperout && update_state)
|
||||
{
|
||||
fputs("STATE: -media-empty-warning\n", stderr);
|
||||
paperout = 0;
|
||||
}
|
||||
|
||||
- if (offline)
|
||||
+ if (offline && update_state)
|
||||
{
|
||||
fputs("STATE: -offline-report\n", stderr);
|
||||
_cupsLangPuts(stderr, _("INFO: Printer is now online.\n"));
|
||||
diff -up cups-1.4.2/backend/socket.c.media-empty-warning cups-1.4.2/backend/socket.c
|
||||
--- cups-1.4.2/backend/socket.c.media-empty-warning 2009-06-12 05:02:45.000000000 +0100
|
||||
+++ cups-1.4.2/backend/socket.c 2009-12-08 11:22:27.863488075 +0000
|
||||
@@ -393,7 +393,7 @@ main(int argc, /* I - Number of comm
|
||||
lseek(print_fd, 0, SEEK_SET);
|
||||
}
|
||||
|
||||
- tbytes = backendRunLoop(print_fd, device_fd, snmp_fd, &(addr->addr), 1,
|
||||
+ tbytes = backendRunLoop(print_fd, device_fd, snmp_fd, &(addr->addr), 1, 0,
|
||||
backendNetworkSideCB);
|
||||
|
||||
if (print_fd != 0 && tbytes >= 0)
|
||||
diff -up cups-1.4.2/backend/usb-unix.c.media-empty-warning cups-1.4.2/backend/usb-unix.c
|
||||
--- cups-1.4.2/backend/usb-unix.c.media-empty-warning 2009-12-08 11:22:12.445487428 +0000
|
||||
+++ cups-1.4.2/backend/usb-unix.c 2009-12-08 11:22:27.864488180 +0000
|
||||
@@ -218,10 +218,10 @@ print_device(const char *uri, /* I - De
|
||||
* select() or poll(), so we can't support the sidechannel either...
|
||||
*/
|
||||
|
||||
- tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, NULL);
|
||||
+ tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, 1, NULL);
|
||||
|
||||
#else
|
||||
- tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, side_cb);
|
||||
+ tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, 1, side_cb);
|
||||
#endif /* __sun */
|
||||
|
||||
if (print_fd != 0 && tbytes >= 0)
|
@ -1,31 +0,0 @@
|
||||
diff -up cups-1.4.2/backend/network.c.negative-snmp-string-length cups-1.4.2/backend/network.c
|
||||
--- cups-1.4.2/backend/network.c.negative-snmp-string-length 2009-08-31 19:45:43.000000000 +0100
|
||||
+++ cups-1.4.2/backend/network.c 2009-12-08 11:14:45.010363459 +0000
|
||||
@@ -170,9 +170,13 @@ backendNetworkSideCB(
|
||||
|
||||
case CUPS_ASN1_BIT_STRING :
|
||||
case CUPS_ASN1_OCTET_STRING :
|
||||
- i = (int)(sizeof(data) - (dataptr - data));
|
||||
- if (packet.object_value.string.num_bytes < i)
|
||||
+ if (packet.object_value.string.num_bytes < 0)
|
||||
+ i = 0;
|
||||
+ else if (packet.object_value.string.num_bytes <
|
||||
+ (sizeof(data) - (dataptr - data)))
|
||||
i = packet.object_value.string.num_bytes;
|
||||
+ else
|
||||
+ i = (int)(sizeof(data) - (dataptr - data));
|
||||
|
||||
memcpy(dataptr, packet.object_value.string.bytes, i);
|
||||
|
||||
diff -up cups-1.4.2/backend/snmp-supplies.c.negative-snmp-string-length cups-1.4.2/backend/snmp-supplies.c
|
||||
--- cups-1.4.2/backend/snmp-supplies.c.negative-snmp-string-length 2009-08-31 17:34:06.000000000 +0100
|
||||
+++ cups-1.4.2/backend/snmp-supplies.c 2009-12-08 11:15:05.505362685 +0000
|
||||
@@ -232,6 +232,8 @@ backendSNMPSupplies(
|
||||
if (packet.object_value.string.num_bytes == 2)
|
||||
new_state = (packet.object_value.string.bytes[0] << 8) |
|
||||
packet.object_value.string.bytes[1];
|
||||
+ else if (packet.object_value.string.num_bytes == 1)
|
||||
+ new_state = (packet.object_value.string.bytes[0] << 8);
|
||||
else
|
||||
new_state = 0;
|
||||
|
@ -1,68 +0,0 @@
|
||||
diff -up cups-1.4.2/cups/sidechannel.c.sidechannel-intrs cups-1.4.2/cups/sidechannel.c
|
||||
--- cups-1.4.2/cups/sidechannel.c.sidechannel-intrs 2009-09-23 00:20:35.000000000 +0100
|
||||
+++ cups-1.4.2/cups/sidechannel.c 2009-12-08 11:08:15.297539377 +0000
|
||||
@@ -116,6 +116,7 @@ cupsSideChannelRead(
|
||||
char buffer[16388]; /* Message buffer */
|
||||
int bytes; /* Bytes read */
|
||||
int templen; /* Data length from message */
|
||||
+ int nfds; /* Number of file descriptors */
|
||||
#ifdef HAVE_POLL
|
||||
struct pollfd pfd; /* Poll structure for poll() */
|
||||
#else /* select() */
|
||||
@@ -143,39 +144,31 @@ cupsSideChannelRead(
|
||||
pfd.fd = CUPS_SC_FD;
|
||||
pfd.events = POLLIN;
|
||||
|
||||
- if (timeout < 0.0)
|
||||
- {
|
||||
- if (poll(&pfd, 1, -1) < 1)
|
||||
- return (-1);
|
||||
- }
|
||||
- else if (poll(&pfd, 1, (long)(timeout * 1000)) < 1)
|
||||
- return (-1);
|
||||
+ while ((nfds = poll(&pfd, 1,
|
||||
+ timeout < 0.0 ? -1 : (long)(timeout * 1000))) < 0 &&
|
||||
+ (errno == EINTR || errno == EAGAIN))
|
||||
+ ;
|
||||
|
||||
#else /* select() */
|
||||
FD_ZERO(&input_set);
|
||||
FD_SET(CUPS_SC_FD, &input_set);
|
||||
|
||||
- if (timeout < 0.0)
|
||||
- {
|
||||
- if (select(CUPS_SC_FD + 1, &input_set, NULL, NULL, NULL) < 1)
|
||||
- {
|
||||
- DEBUG_printf(("1cupsSideChannelRead: Select error: %s", strerror(errno)));
|
||||
- return (-1);
|
||||
- }
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- stimeout.tv_sec = (int)timeout;
|
||||
- stimeout.tv_usec = (int)(timeout * 1000000) % 1000000;
|
||||
+ stimeout.tv_sec = (int)timeout;
|
||||
+ stimeout.tv_usec = (int)(timeout * 1000000) % 1000000;
|
||||
+
|
||||
+ while ((nfds = select(CUPS_SC_FD + 1, &input_set, NULL, NULL,
|
||||
+ timeout < 0.0 ? NULL : &stimeout)) < 0 &&
|
||||
+ (errno == EINTR || errno == EAGAIN))
|
||||
+ ;
|
||||
|
||||
- if (select(CUPS_SC_FD + 1, &input_set, NULL, NULL, &stimeout) < 1)
|
||||
- {
|
||||
- DEBUG_puts("1cupsSideChannelRead: Select timeout");
|
||||
- return (-1);
|
||||
- }
|
||||
- }
|
||||
#endif /* HAVE_POLL */
|
||||
|
||||
+ if (nfds < 1)
|
||||
+ {
|
||||
+ *status = nfds==0 ? CUPS_SC_STATUS_TIMEOUT : CUPS_SC_STATUS_IO_ERROR;
|
||||
+ return (-1);
|
||||
+ }
|
||||
+
|
||||
/*
|
||||
* Read a side-channel message for the format:
|
||||
*
|
@ -1,12 +0,0 @@
|
||||
diff -up cups-1.4.1/cups/dest.c.str3285 cups-1.4.1/cups/dest.c
|
||||
--- cups-1.4.1/cups/dest.c.str3285 2009-10-27 12:50:04.560012076 +0000
|
||||
+++ cups-1.4.1/cups/dest.c 2009-10-27 12:50:23.814012173 +0000
|
||||
@@ -549,7 +549,7 @@ cupsGetNamedDest(http_t *http, /* I
|
||||
|
||||
if (!cups_get_sdests(http, op, name, 0, &dest))
|
||||
{
|
||||
- if (op == CUPS_GET_DEFAULT)
|
||||
+ if (op == CUPS_GET_DEFAULT || (name && !set_as_default))
|
||||
return (NULL);
|
||||
|
||||
/*
|
@ -1,208 +0,0 @@
|
||||
diff -up cups-1.4.2/CHANGES.txt.str3381 cups-1.4.2/CHANGES.txt
|
||||
--- cups-1.4.2/CHANGES.txt.str3381 2009-11-09 23:01:17.000000000 +0000
|
||||
+++ cups-1.4.2/CHANGES.txt 2009-11-16 10:55:21.518666538 +0000
|
||||
@@ -1,6 +1,11 @@
|
||||
-CHANGES.txt - 2009-11-09
|
||||
+CHANGES.txt - 2009-11-13
|
||||
------------------------
|
||||
|
||||
+CHANGES IN CUPS V1.4.3
|
||||
+
|
||||
+ - Fixed a GNU TLS error handling bug (STR #3381)
|
||||
+
|
||||
+
|
||||
CHANGES IN CUPS V1.4.2
|
||||
|
||||
- SECURITY: The CUPS web interface was vulnerable to several XSS and
|
||||
diff -up cups-1.4.2/cups/http.c.str3381 cups-1.4.2/cups/http.c
|
||||
--- cups-1.4.2/cups/http.c.str3381 2009-07-01 16:23:28.000000000 +0100
|
||||
+++ cups-1.4.2/cups/http.c 2009-11-16 10:55:21.520666380 +0000
|
||||
@@ -26,7 +26,6 @@
|
||||
* httpClearCookie() - Clear the cookie value(s).
|
||||
* httpClearFields() - Clear HTTP request fields.
|
||||
* httpClose() - Close an HTTP connection...
|
||||
- * httpConnect() - Connect to a HTTP server.
|
||||
* httpConnectEncrypt() - Connect to a HTTP server using encryption.
|
||||
* _httpCreate() - Create an unconnected HTTP connection.
|
||||
* httpDelete() - Send a DELETE request to the server.
|
||||
@@ -721,7 +720,7 @@ httpGetField(http_t *http, /* I -
|
||||
{
|
||||
if (!http || field <= HTTP_FIELD_UNKNOWN || field >= HTTP_FIELD_MAX)
|
||||
return (NULL);
|
||||
- else if (field == HTTP_FIELD_AUTHORIZATION &&
|
||||
+ else if (field == HTTP_FIELD_AUTHORIZATION &&
|
||||
http->field_authorization)
|
||||
{
|
||||
/*
|
||||
@@ -1137,7 +1136,7 @@ httpGets(char *line, /* I - Line to
|
||||
http->activity = time(NULL);
|
||||
|
||||
*lineptr = '\0';
|
||||
-
|
||||
+
|
||||
DEBUG_printf(("3httpGets: Returning \"%s\"", line));
|
||||
|
||||
return (line);
|
||||
@@ -2283,7 +2282,7 @@ httpWait(http_t *http, /* I - Connecti
|
||||
*
|
||||
* @deprecated@
|
||||
*/
|
||||
-
|
||||
+
|
||||
int /* O - Number of bytes written */
|
||||
httpWrite(http_t *http, /* I - Connection to server */
|
||||
const char *buffer, /* I - Buffer for data */
|
||||
@@ -2298,7 +2297,7 @@ httpWrite(http_t *http, /* I - Conn
|
||||
*
|
||||
* @since CUPS 1.2/Mac OS X 10.5@
|
||||
*/
|
||||
-
|
||||
+
|
||||
ssize_t /* O - Number of bytes written */
|
||||
httpWrite2(http_t *http, /* I - Connection to server */
|
||||
const char *buffer, /* I - Buffer for data */
|
||||
@@ -2456,7 +2455,7 @@ _httpWriteCDSA(
|
||||
else
|
||||
{
|
||||
*dataLength = 0;
|
||||
-
|
||||
+
|
||||
if (errno == EAGAIN)
|
||||
result = errSSLWouldBlock;
|
||||
else
|
||||
@@ -2517,7 +2516,7 @@ http_bio_ctrl(BIO *h, /* I - BIO data
|
||||
}
|
||||
else
|
||||
return (0);
|
||||
-
|
||||
+
|
||||
case BIO_CTRL_DUP :
|
||||
case BIO_CTRL_FLUSH :
|
||||
return (1);
|
||||
@@ -2719,7 +2718,36 @@ http_read_ssl(http_t *http, /* I - Conn
|
||||
return (SSL_read((SSL *)(http->tls), buf, len));
|
||||
|
||||
# elif defined(HAVE_GNUTLS)
|
||||
- return (gnutls_record_recv(((http_tls_t *)(http->tls))->session, buf, len));
|
||||
+ ssize_t result; /* Return value */
|
||||
+
|
||||
+
|
||||
+ result = gnutls_record_recv(((http_tls_t *)(http->tls))->session, buf, len);
|
||||
+
|
||||
+ if (result < 0 && !errno)
|
||||
+ {
|
||||
+ /*
|
||||
+ * Convert GNU TLS error to errno value...
|
||||
+ */
|
||||
+
|
||||
+ switch (result)
|
||||
+ {
|
||||
+ case GNUTLS_E_INTERRUPTED :
|
||||
+ errno = EINTR;
|
||||
+ break;
|
||||
+
|
||||
+ case GNUTLS_E_AGAIN :
|
||||
+ errno = EAGAIN;
|
||||
+ break;
|
||||
+
|
||||
+ default :
|
||||
+ errno = EPIPE;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ result = -1;
|
||||
+ }
|
||||
+
|
||||
+ return ((int)result);
|
||||
|
||||
# elif defined(HAVE_CDSASSL)
|
||||
int result; /* Return value */
|
||||
@@ -2857,7 +2885,7 @@ http_send(http_t *http, /* I - Con
|
||||
DEBUG_printf(("9http_send: %s: %s", http_fields[i],
|
||||
httpGetField(http, i)));
|
||||
|
||||
- if (httpPrintf(http, "%s: %s\r\n", http_fields[i],
|
||||
+ if (httpPrintf(http, "%s: %s\r\n", http_fields[i],
|
||||
httpGetField(http, i)) < 1)
|
||||
{
|
||||
http->status = HTTP_ERROR;
|
||||
@@ -2896,15 +2924,15 @@ http_send(http_t *http, /* I - Con
|
||||
* The Kerberos and AuthRef authentication strings can only be used once...
|
||||
*/
|
||||
|
||||
- if (http->field_authorization && http->authstring &&
|
||||
- (!strncmp(http->authstring, "Negotiate", 9) ||
|
||||
+ if (http->field_authorization && http->authstring &&
|
||||
+ (!strncmp(http->authstring, "Negotiate", 9) ||
|
||||
!strncmp(http->authstring, "AuthRef", 7)))
|
||||
{
|
||||
http->_authstring[0] = '\0';
|
||||
|
||||
if (http->authstring != http->_authstring)
|
||||
free(http->authstring);
|
||||
-
|
||||
+
|
||||
http->authstring = http->_authstring;
|
||||
}
|
||||
|
||||
@@ -3220,7 +3248,7 @@ http_upgrade(http_t *http) /* I - Conne
|
||||
/*
|
||||
* 'http_write()' - Write a buffer to a HTTP connection.
|
||||
*/
|
||||
-
|
||||
+
|
||||
static int /* O - Number of bytes written */
|
||||
http_write(http_t *http, /* I - Connection to server */
|
||||
const char *buffer, /* I - Buffer for data */
|
||||
@@ -3335,7 +3363,36 @@ http_write_ssl(http_t *http, /* I -
|
||||
return (SSL_write((SSL *)(http->tls), buf, len));
|
||||
|
||||
# elif defined(HAVE_GNUTLS)
|
||||
- return (gnutls_record_send(((http_tls_t *)(http->tls))->session, buf, len));
|
||||
+ ssize_t result; /* Return value */
|
||||
+
|
||||
+ result = gnutls_record_send(((http_tls_t *)(http->tls))->session, buf, len);
|
||||
+
|
||||
+ if (result < 0 && !errno)
|
||||
+ {
|
||||
+ /*
|
||||
+ * Convert GNU TLS error to errno value...
|
||||
+ */
|
||||
+
|
||||
+ switch (result)
|
||||
+ {
|
||||
+ case GNUTLS_E_INTERRUPTED :
|
||||
+ errno = EINTR;
|
||||
+ break;
|
||||
+
|
||||
+ case GNUTLS_E_AGAIN :
|
||||
+ errno = EAGAIN;
|
||||
+ break;
|
||||
+
|
||||
+ default :
|
||||
+ errno = EPIPE;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ result = -1;
|
||||
+ }
|
||||
+
|
||||
+ return ((int)result);
|
||||
+
|
||||
# elif defined(HAVE_CDSASSL)
|
||||
int result; /* Return value */
|
||||
OSStatus error; /* Error info */
|
||||
@@ -3358,11 +3415,11 @@ http_write_ssl(http_t *http, /* I -
|
||||
else
|
||||
{
|
||||
result = -1;
|
||||
- errno = EINTR;
|
||||
+ errno = EINTR;
|
||||
}
|
||||
break;
|
||||
default :
|
||||
- errno = EPIPE;
|
||||
+ errno = EPIPE;
|
||||
result = -1;
|
||||
break;
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
diff -up cups-1.4.1/cups/tempfile.c.str3382 cups-1.4.1/cups/tempfile.c
|
||||
--- cups-1.4.1/cups/tempfile.c.str3382 2008-12-10 06:03:11.000000000 +0100
|
||||
+++ cups-1.4.1/cups/tempfile.c 2009-10-20 15:08:39.000000000 +0200
|
||||
diff -up cups-1.4.3/cups/tempfile.c.str3382 cups-1.4.3/cups/tempfile.c
|
||||
--- cups-1.4.3/cups/tempfile.c.str3382 2010-01-18 19:47:12.000000000 +0100
|
||||
+++ cups-1.4.3/cups/tempfile.c 2010-03-31 13:26:52.000000000 +0200
|
||||
@@ -35,6 +35,7 @@
|
||||
# include <io.h>
|
||||
#else
|
||||
@ -33,8 +33,8 @@ diff -up cups-1.4.1/cups/tempfile.c.str3382 cups-1.4.1/cups/tempfile.c
|
||||
- * Format a string using the hex time values...
|
||||
- */
|
||||
-
|
||||
- snprintf(filename, len - 1, "%s/%08lx%05lx", tmpdir,
|
||||
- (unsigned long)curtime.tv_sec, (unsigned long)curtime.tv_usec);
|
||||
- snprintf(filename, len - 1, "%s/%05x%08x", tmpdir, (unsigned)getpid(),
|
||||
- (unsigned)(curtime.tv_sec + curtime.tv_usec + tries));
|
||||
-#endif /* WIN32 */
|
||||
|
||||
/*
|
||||
|
@ -1,15 +0,0 @@
|
||||
diff -up cups-1.4.1/cgi-bin/admin.c.str3390 cups-1.4.1/cgi-bin/admin.c
|
||||
--- cups-1.4.1/cgi-bin/admin.c.str3390 2009-08-29 08:05:14.000000000 +0200
|
||||
+++ cups-1.4.1/cgi-bin/admin.c 2009-10-27 14:44:53.000000000 +0100
|
||||
@@ -1044,6 +1044,11 @@ do_am_printer(http_t *http, /* I - HTTP
|
||||
if ((attr = ippFindAttribute(oldinfo, "printer-location",
|
||||
IPP_TAG_TEXT)) != NULL)
|
||||
cgiSetVariable("PRINTER_LOCATION", attr->values[0].string.text);
|
||||
+
|
||||
+ if ((attr = ippFindAttribute(oldinfo, "printer-is-shared",
|
||||
+ IPP_TAG_BOOLEAN)) != NULL)
|
||||
+ cgiSetVariable("PRINTER_IS_SHARED",
|
||||
+ attr->values[0].boolean ? "1" : "0");
|
||||
}
|
||||
|
||||
cgiCopyTemplateLang("modify-printer.tmpl");
|
@ -1,196 +0,0 @@
|
||||
diff -up cups-1.4.1/templates/add-printer.tmpl.str3391 cups-1.4.1/templates/add-printer.tmpl
|
||||
--- cups-1.4.1/templates/add-printer.tmpl.str3391 2009-06-18 19:23:21.000000000 +0200
|
||||
+++ cups-1.4.1/templates/add-printer.tmpl 2009-10-27 15:08:45.000000000 +0100
|
||||
@@ -4,6 +4,10 @@
|
||||
|
||||
<FORM METHOD="POST" ACTION="/admin">
|
||||
<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
|
||||
{?current_make!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE" VALUE="{current_make}">:}
|
||||
{?current_make_and_model!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{current_make_and_model}">:}
|
||||
|
||||
diff -up cups-1.4.1/templates/de/add-printer.tmpl.str3391 cups-1.4.1/templates/de/add-printer.tmpl
|
||||
--- cups-1.4.1/templates/de/add-printer.tmpl.str3391 2009-06-18 19:23:21.000000000 +0200
|
||||
+++ cups-1.4.1/templates/de/add-printer.tmpl 2009-10-27 15:08:56.000000000 +0100
|
||||
@@ -4,6 +4,10 @@
|
||||
|
||||
<FORM METHOD="POST" ACTION="/admin">
|
||||
<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
|
||||
{?current_make!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE" VALUE="{current_make}">:}
|
||||
{?current_make_and_model!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{current_make_and_model}">:}
|
||||
|
||||
diff -up cups-1.4.1/templates/de/modify-printer.tmpl.str3391 cups-1.4.1/templates/de/modify-printer.tmpl
|
||||
--- cups-1.4.1/templates/de/modify-printer.tmpl.str3391 2009-06-18 19:23:21.000000000 +0200
|
||||
+++ cups-1.4.1/templates/de/modify-printer.tmpl 2009-10-27 15:10:28.000000000 +0100
|
||||
@@ -4,6 +4,10 @@
|
||||
|
||||
<FORM METHOD="POST" ACTION="/admin">
|
||||
<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
|
||||
<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
|
||||
|
||||
<TABLE>
|
||||
diff -up cups-1.4.1/templates/es/add-printer.tmpl.str3391 cups-1.4.1/templates/es/add-printer.tmpl
|
||||
--- cups-1.4.1/templates/es/add-printer.tmpl.str3391 2009-06-18 19:23:21.000000000 +0200
|
||||
+++ cups-1.4.1/templates/es/add-printer.tmpl 2009-10-27 15:09:02.000000000 +0100
|
||||
@@ -4,6 +4,10 @@
|
||||
|
||||
<FORM METHOD="POST" ACTION="/admin">
|
||||
<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
|
||||
{?current_make!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE" VALUE="{current_make}">:}
|
||||
{?current_make_and_model!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{current_make_and_model}">:}
|
||||
|
||||
diff -up cups-1.4.1/templates/es/modify-printer.tmpl.str3391 cups-1.4.1/templates/es/modify-printer.tmpl
|
||||
--- cups-1.4.1/templates/es/modify-printer.tmpl.str3391 2009-06-18 19:23:21.000000000 +0200
|
||||
+++ cups-1.4.1/templates/es/modify-printer.tmpl 2009-10-27 15:10:32.000000000 +0100
|
||||
@@ -4,6 +4,10 @@
|
||||
|
||||
<FORM METHOD="POST" ACTION="/admin">
|
||||
<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
|
||||
<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
|
||||
|
||||
<TABLE>
|
||||
diff -up cups-1.4.1/templates/eu/add-printer.tmpl.str3391 cups-1.4.1/templates/eu/add-printer.tmpl
|
||||
--- cups-1.4.1/templates/eu/add-printer.tmpl.str3391 2009-07-07 18:52:34.000000000 +0200
|
||||
+++ cups-1.4.1/templates/eu/add-printer.tmpl 2009-10-27 15:09:08.000000000 +0100
|
||||
@@ -4,6 +4,10 @@
|
||||
|
||||
<FORM METHOD="POST" ACTION="/admin">
|
||||
<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
|
||||
{?current_make!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE" VALUE="{current_make}">:}
|
||||
{?current_make_and_model!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{current_make_and_model}">:}
|
||||
|
||||
diff -up cups-1.4.1/templates/eu/modify-printer.tmpl.str3391 cups-1.4.1/templates/eu/modify-printer.tmpl
|
||||
--- cups-1.4.1/templates/eu/modify-printer.tmpl.str3391 2009-07-07 18:52:34.000000000 +0200
|
||||
+++ cups-1.4.1/templates/eu/modify-printer.tmpl 2009-10-27 15:10:37.000000000 +0100
|
||||
@@ -4,6 +4,10 @@
|
||||
|
||||
<FORM METHOD="POST" ACTION="/admin">
|
||||
<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
|
||||
<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
|
||||
|
||||
<TABLE>
|
||||
diff -up cups-1.4.1/templates/ja/add-printer.tmpl.str3391 cups-1.4.1/templates/ja/add-printer.tmpl
|
||||
--- cups-1.4.1/templates/ja/add-printer.tmpl.str3391 2009-06-18 19:23:21.000000000 +0200
|
||||
+++ cups-1.4.1/templates/ja/add-printer.tmpl 2009-10-27 15:09:15.000000000 +0100
|
||||
@@ -4,6 +4,10 @@
|
||||
|
||||
<FORM METHOD="POST" ACTION="/admin">
|
||||
<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
|
||||
{?current_make!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE" VALUE="{current_make}">:}
|
||||
{?current_make_and_model!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{current_make_and_model}">:}
|
||||
|
||||
diff -up cups-1.4.1/templates/ja/modify-printer.tmpl.str3391 cups-1.4.1/templates/ja/modify-printer.tmpl
|
||||
--- cups-1.4.1/templates/ja/modify-printer.tmpl.str3391 2009-06-18 19:23:21.000000000 +0200
|
||||
+++ cups-1.4.1/templates/ja/modify-printer.tmpl 2009-10-27 15:10:40.000000000 +0100
|
||||
@@ -4,6 +4,10 @@
|
||||
|
||||
<FORM METHOD="POST" ACTION="/admin">
|
||||
<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
|
||||
<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
|
||||
|
||||
<TABLE>
|
||||
diff -up cups-1.4.1/templates/modify-printer.tmpl.str3391 cups-1.4.1/templates/modify-printer.tmpl
|
||||
--- cups-1.4.1/templates/modify-printer.tmpl.str3391 2009-06-18 19:23:21.000000000 +0200
|
||||
+++ cups-1.4.1/templates/modify-printer.tmpl 2009-10-27 15:10:23.000000000 +0100
|
||||
@@ -4,6 +4,10 @@
|
||||
|
||||
<FORM METHOD="POST" ACTION="/admin">
|
||||
<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
|
||||
<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
|
||||
|
||||
<TABLE>
|
||||
diff -up cups-1.4.1/templates/pl/add-printer.tmpl.str3391 cups-1.4.1/templates/pl/add-printer.tmpl
|
||||
--- cups-1.4.1/templates/pl/add-printer.tmpl.str3391 2009-06-18 19:23:21.000000000 +0200
|
||||
+++ cups-1.4.1/templates/pl/add-printer.tmpl 2009-10-27 15:09:20.000000000 +0100
|
||||
@@ -4,6 +4,10 @@
|
||||
|
||||
<FORM METHOD="POST" ACTION="/admin">
|
||||
<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
|
||||
{?current_make!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE" VALUE="{current_make}">:}
|
||||
{?current_make_and_model!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{current_make_and_model}">:}
|
||||
|
||||
diff -up cups-1.4.1/templates/pl/modify-printer.tmpl.str3391 cups-1.4.1/templates/pl/modify-printer.tmpl
|
||||
--- cups-1.4.1/templates/pl/modify-printer.tmpl.str3391 2009-06-18 19:23:21.000000000 +0200
|
||||
+++ cups-1.4.1/templates/pl/modify-printer.tmpl 2009-10-27 15:10:44.000000000 +0100
|
||||
@@ -4,6 +4,10 @@
|
||||
|
||||
<FORM METHOD="POST" ACTION="/admin">
|
||||
<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
|
||||
<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
|
||||
|
||||
<TABLE>
|
||||
diff -up cups-1.4.1/templates/ru/add-printer.tmpl.str3391 cups-1.4.1/templates/ru/add-printer.tmpl
|
||||
--- cups-1.4.1/templates/ru/add-printer.tmpl.str3391 2009-06-18 19:23:21.000000000 +0200
|
||||
+++ cups-1.4.1/templates/ru/add-printer.tmpl 2009-10-27 15:09:24.000000000 +0100
|
||||
@@ -4,6 +4,10 @@
|
||||
|
||||
<FORM METHOD="POST" ACTION="/admin">
|
||||
<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
|
||||
{?current_make!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE" VALUE="{current_make}">:}
|
||||
{?current_make_and_model!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{current_make_and_model}">:}
|
||||
|
||||
diff -up cups-1.4.1/templates/ru/modify-printer.tmpl.str3391 cups-1.4.1/templates/ru/modify-printer.tmpl
|
||||
--- cups-1.4.1/templates/ru/modify-printer.tmpl.str3391 2009-06-18 19:23:21.000000000 +0200
|
||||
+++ cups-1.4.1/templates/ru/modify-printer.tmpl 2009-10-27 15:10:48.000000000 +0100
|
||||
@@ -4,6 +4,10 @@
|
||||
|
||||
<FORM METHOD="POST" ACTION="/admin">
|
||||
<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
|
||||
<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
|
||||
|
||||
<TABLE>
|
@ -1,27 +1,4 @@
|
||||
diff -up cups-1.4.2/CHANGES-1.4.txt.str3399 cups-1.4.2/CHANGES-1.4.txt
|
||||
diff -up cups-1.4.2/scheduler/process.c.str3399 cups-1.4.2/scheduler/process.c
|
||||
--- cups-1.4.2/scheduler/process.c.str3399 2009-05-16 04:04:48.000000000 +0100
|
||||
+++ cups-1.4.2/scheduler/process.c 2009-11-16 17:15:26.104542409 +0000
|
||||
@@ -505,6 +505,7 @@ cupsdStartProcess(
|
||||
#ifdef HAVE_SIGSET
|
||||
sigset(SIGTERM, SIG_DFL);
|
||||
sigset(SIGCHLD, SIG_DFL);
|
||||
+ sigset(SIGPIPE, SIG_DFL);
|
||||
#elif defined(HAVE_SIGACTION)
|
||||
memset(&action, 0, sizeof(action));
|
||||
|
||||
@@ -513,9 +514,11 @@ cupsdStartProcess(
|
||||
|
||||
sigaction(SIGTERM, &action, NULL);
|
||||
sigaction(SIGCHLD, &action, NULL);
|
||||
+ sigaction(SIGPIPE, &action, NULL);
|
||||
#else
|
||||
signal(SIGTERM, SIG_DFL);
|
||||
signal(SIGCHLD, SIG_DFL);
|
||||
+ signal(SIGPIPE, SIG_DFL);
|
||||
#endif /* HAVE_SIGSET */
|
||||
|
||||
cupsdReleaseSignals();
|
||||
diff -up cups-1.4.2/scheduler/main.c.str3399 cups-1.4.2/scheduler/main.c
|
||||
--- cups-1.4.2/scheduler/main.c.str3399 2010-03-02 11:04:28.968100478 +0000
|
||||
+++ cups-1.4.2/scheduler/main.c 2010-03-02 11:04:47.442226409 +0000
|
||||
@@ -1733,7 +1733,7 @@ process_children(void)
|
||||
|
@ -1,84 +0,0 @@
|
||||
diff -up cups-1.4.2/templates/admin.tmpl.str3403 cups-1.4.2/templates/admin.tmpl
|
||||
--- cups-1.4.2/templates/admin.tmpl.str3403 2008-09-26 16:52:03.000000000 +0100
|
||||
+++ cups-1.4.2/templates/admin.tmpl 2009-11-16 17:21:56.108541688 +0000
|
||||
@@ -20,7 +20,7 @@
|
||||
<H2 CLASS="title">Jobs</H2>
|
||||
|
||||
<P>
|
||||
-<FORM ACTION="/jobs/" METHDO="GET"><INPUT TYPE="SUBMIT" VALUE="Manage Jobs"></FORM>
|
||||
+<FORM ACTION="/jobs/" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Manage Jobs"></FORM>
|
||||
</P>
|
||||
|
||||
</TD><TD> </TD><TD VALIGN="TOP">
|
||||
diff -up cups-1.4.2/templates/de/admin.tmpl.str3403 cups-1.4.2/templates/de/admin.tmpl
|
||||
--- cups-1.4.2/templates/de/admin.tmpl.str3403 2009-04-03 16:55:28.000000000 +0100
|
||||
+++ cups-1.4.2/templates/de/admin.tmpl 2009-11-16 17:21:56.109542590 +0000
|
||||
@@ -20,7 +20,7 @@
|
||||
<H2 CLASS="title">Druckaufträge</H2>
|
||||
|
||||
<P>
|
||||
-<FORM ACTION="/jobs/" METHDO="GET"><INPUT TYPE="SUBMIT" VALUE="Aufträge verwalten"></FORM>
|
||||
+<FORM ACTION="/jobs/" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Aufträge verwalten"></FORM>
|
||||
</P>
|
||||
|
||||
</TD><TD> </TD><TD VALIGN="TOP">
|
||||
diff -up cups-1.4.2/templates/es/admin.tmpl.str3403 cups-1.4.2/templates/es/admin.tmpl
|
||||
--- cups-1.4.2/templates/es/admin.tmpl.str3403 2009-01-10 00:26:04.000000000 +0000
|
||||
+++ cups-1.4.2/templates/es/admin.tmpl 2009-11-16 17:21:56.120542504 +0000
|
||||
@@ -20,7 +20,7 @@
|
||||
<H2 CLASS="title">Trabajos</H2>
|
||||
|
||||
<P>
|
||||
-<FORM ACTION="/jobs/" METHDO="GET"><INPUT TYPE="SUBMIT" VALUE="Administrar trabajos"></FORM>
|
||||
+<FORM ACTION="/jobs/" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Administrar trabajos"></FORM>
|
||||
</P>
|
||||
|
||||
</TD><TD> </TD><TD VALIGN="TOP">
|
||||
diff -up cups-1.4.2/templates/eu/admin.tmpl.str3403 cups-1.4.2/templates/eu/admin.tmpl
|
||||
--- cups-1.4.2/templates/eu/admin.tmpl.str3403 2009-07-07 17:52:34.000000000 +0100
|
||||
+++ cups-1.4.2/templates/eu/admin.tmpl 2009-11-16 17:21:56.120542504 +0000
|
||||
@@ -20,7 +20,7 @@
|
||||
<H2 CLASS="title">Lanak</H2>
|
||||
|
||||
<P>
|
||||
-<FORM ACTION="/jobs/" METHDO="GET"><INPUT TYPE="SUBMIT" VALUE="Kudeatu lanak"></FORM>
|
||||
+<FORM ACTION="/jobs/" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Kudeatu lanak"></FORM>
|
||||
</P>
|
||||
|
||||
</TD><TD> </TD><TD VALIGN="TOP">
|
||||
diff -up cups-1.4.2/templates/ja/admin.tmpl.str3403 cups-1.4.2/templates/ja/admin.tmpl
|
||||
--- cups-1.4.2/templates/ja/admin.tmpl.str3403 2009-02-17 19:04:25.000000000 +0000
|
||||
+++ cups-1.4.2/templates/ja/admin.tmpl 2009-11-16 17:21:56.120542504 +0000
|
||||
@@ -20,7 +20,7 @@
|
||||
<H2 CLASS="title">ジョブ</H2>
|
||||
|
||||
<P>
|
||||
-<FORM ACTION="/jobs/" METHDO="GET"><INPUT TYPE="SUBMIT" VALUE="ジョブの管理"></FORM>
|
||||
+<FORM ACTION="/jobs/" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="ジョブの管理"></FORM>
|
||||
</P>
|
||||
|
||||
</TD><TD> </TD><TD VALIGN="TOP">
|
||||
diff -up cups-1.4.2/templates/pl/admin.tmpl.str3403 cups-1.4.2/templates/pl/admin.tmpl
|
||||
--- cups-1.4.2/templates/pl/admin.tmpl.str3403 2009-02-25 16:48:35.000000000 +0000
|
||||
+++ cups-1.4.2/templates/pl/admin.tmpl 2009-11-16 17:21:56.121542314 +0000
|
||||
@@ -20,7 +20,7 @@
|
||||
<H2 CLASS="title">Zadania</H2>
|
||||
|
||||
<P>
|
||||
-<FORM ACTION="/jobs/" METHDO="GET"><INPUT TYPE="SUBMIT" VALUE="Zarządzanie zadaniami"></FORM>
|
||||
+<FORM ACTION="/jobs/" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Zarządzanie zadaniami"></FORM>
|
||||
</P>
|
||||
|
||||
</TD><TD> </TD><TD VALIGN="TOP">
|
||||
diff -up cups-1.4.2/templates/ru/admin.tmpl.str3403 cups-1.4.2/templates/ru/admin.tmpl
|
||||
--- cups-1.4.2/templates/ru/admin.tmpl.str3403 2009-10-26 16:01:08.000000000 +0000
|
||||
+++ cups-1.4.2/templates/ru/admin.tmpl 2009-11-16 17:21:56.121542314 +0000
|
||||
@@ -20,7 +20,7 @@
|
||||
<H2 CLASS="title">Задания</H2>
|
||||
|
||||
<P>
|
||||
-<FORM ACTION="/jobs/" METHDO="GET"><INPUT TYPE="SUBMIT" VALUE="Управление заданиями"></FORM>
|
||||
+<FORM ACTION="/jobs/" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Управление заданиями"></FORM>
|
||||
</P>
|
||||
|
||||
</TD><TD> </TD><TD VALIGN="TOP">
|
@ -1,67 +0,0 @@
|
||||
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...
|
||||
*/
|
@ -1,33 +0,0 @@
|
||||
diff -up cups-1.4.2/backend/snmp.c.str3413 cups-1.4.2/backend/snmp.c
|
||||
--- cups-1.4.2/backend/snmp.c.str3413 2009-01-14 22:40:58.000000000 +0000
|
||||
+++ cups-1.4.2/backend/snmp.c 2009-12-08 10:54:11.798515550 +0000
|
||||
@@ -999,7 +999,7 @@ read_snmp_response(int fd) /* I - SNMP
|
||||
DEVICE_PRODUCT, LexmarkProductOID2);
|
||||
_cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1,
|
||||
packet.community, CUPS_ASN1_GET_REQUEST,
|
||||
- DEVICE_URI, LexmarkDeviceIdOID);
|
||||
+ DEVICE_ID, LexmarkDeviceIdOID);
|
||||
_cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1,
|
||||
packet.community, CUPS_ASN1_GET_REQUEST,
|
||||
DEVICE_PRODUCT, XeroxProductOID);
|
||||
@@ -1054,7 +1054,9 @@ read_snmp_response(int fd) /* I - SNMP
|
||||
break;
|
||||
|
||||
case DEVICE_ID :
|
||||
- if (device && packet.object_type == CUPS_ASN1_OCTET_STRING)
|
||||
+ if (device && packet.object_type == CUPS_ASN1_OCTET_STRING &&
|
||||
+ (!device->id ||
|
||||
+ strlen(device->id) < packet.object_value.string.num_bytes))
|
||||
{
|
||||
/*
|
||||
* Update an existing cache entry...
|
||||
@@ -1107,7 +1109,7 @@ read_snmp_response(int fd) /* I - SNMP
|
||||
|
||||
case DEVICE_URI :
|
||||
if (device && packet.object_type == CUPS_ASN1_OCTET_STRING &&
|
||||
- !device->uri)
|
||||
+ !device->uri && packet.object_value.string.num_bytes > 0)
|
||||
{
|
||||
/*
|
||||
* Update an existing cache entry...
|
||||
diff -up cups-1.4.2/CHANGES-1.4.txt.str3413 cups-1.4.2/CHANGES-1.4.txt
|
@ -1,90 +0,0 @@
|
||||
diff -up cups-1.4.2/cgi-bin/admin.c.str3418 cups-1.4.2/cgi-bin/admin.c
|
||||
--- cups-1.4.2/cgi-bin/admin.c.str3418 2009-11-17 13:23:51.130084685 +0000
|
||||
+++ cups-1.4.2/cgi-bin/admin.c 2009-11-17 13:23:56.773209143 +0000
|
||||
@@ -1261,7 +1261,7 @@ do_am_printer(http_t *http, /* I - HTTP
|
||||
* Got the list of PPDs, see if the user has selected a make...
|
||||
*/
|
||||
|
||||
- if (cgiSetIPPVars(response, NULL, NULL, NULL, 0) == 0)
|
||||
+ if (cgiSetIPPVars(response, NULL, NULL, NULL, 0) == 0 && !modify)
|
||||
{
|
||||
/*
|
||||
* No PPD files with this make, try again with all makes...
|
||||
@@ -1297,8 +1297,11 @@ do_am_printer(http_t *http, /* I - HTTP
|
||||
*/
|
||||
|
||||
cgiStartHTML(title);
|
||||
- cgiSetVariable("CURRENT_MAKE_AND_MODEL",
|
||||
- cgiGetArray("PPD_MAKE_AND_MODEL", 0));
|
||||
+ if (!cgiGetVariable("PPD_MAKE"))
|
||||
+ cgiSetVariable("PPD_MAKE", cgiGetVariable("CURRENT_MAKE"));
|
||||
+ if (!modify)
|
||||
+ cgiSetVariable("CURRENT_MAKE_AND_MODEL",
|
||||
+ cgiGetArray("PPD_MAKE_AND_MODEL", 0));
|
||||
cgiCopyTemplateLang("choose-model.tmpl");
|
||||
cgiEndHTML();
|
||||
}
|
||||
@@ -1590,7 +1593,7 @@ do_config_server(http_t *http) /* I - H
|
||||
#ifdef HAVE_GSSAPI
|
||||
char default_auth_type[255];
|
||||
/* DefaultAuthType value */
|
||||
- const char *val; /* Setting value */
|
||||
+ const char *val; /* Setting value */
|
||||
#endif /* HAVE_GSSAPI */
|
||||
|
||||
|
||||
@@ -1662,7 +1665,7 @@ do_config_server(http_t *http) /* I - H
|
||||
strcat(local_protocols, "slp");
|
||||
}
|
||||
#endif /* HAVE_SLP */
|
||||
-
|
||||
+
|
||||
if (cgiGetVariable("BROWSE_REMOTE_CUPS"))
|
||||
strcpy(remote_protocols, "cups");
|
||||
else
|
||||
@@ -1915,7 +1918,7 @@ do_config_server(http_t *http) /* I - H
|
||||
cgiSetVariable("ERROR", strerror(errno));
|
||||
cgiCopyTemplateLang("error.tmpl");
|
||||
cgiEndHTML();
|
||||
-
|
||||
+
|
||||
perror(tempfile);
|
||||
return;
|
||||
}
|
||||
@@ -1927,7 +1930,7 @@ do_config_server(http_t *http) /* I - H
|
||||
cgiSetVariable("ERROR", strerror(errno));
|
||||
cgiCopyTemplateLang("error.tmpl");
|
||||
cgiEndHTML();
|
||||
-
|
||||
+
|
||||
perror(tempfile);
|
||||
close(tempfd);
|
||||
unlink(tempfile);
|
||||
@@ -3342,7 +3345,7 @@ do_set_options(http_t *http, /* I - HTT
|
||||
((ppdattr = ppdFindAttr(ppd, "cupsCommands", NULL)) != NULL &&
|
||||
ppdattr->value && strstr(ppdattr->value, "AutoConfigure")))
|
||||
cgiSetVariable("HAVE_AUTOCONFIGURE", "YES");
|
||||
- else
|
||||
+ else
|
||||
{
|
||||
for (i = 0; i < ppd->num_filters; i ++)
|
||||
if (!strncmp(ppd->filters[i], "application/vnd.cups-postscript", 31))
|
||||
@@ -3446,7 +3449,7 @@ do_set_options(http_t *http, /* I - HTT
|
||||
cgiSetVariable("GROUP", group->text);
|
||||
|
||||
cgiCopyTemplateLang("option-header.tmpl");
|
||||
-
|
||||
+
|
||||
for (j = group->num_options, option = group->options;
|
||||
j > 0;
|
||||
j --, option ++)
|
||||
@@ -4090,7 +4093,7 @@ get_option_value(
|
||||
|
||||
snprintf(buffer, bufsize, "Custom.%gx%g%s", width, length, uval);
|
||||
}
|
||||
- else if (cupsArrayCount(coption->params) == 1)
|
||||
+ else if (cupsArrayCount(coption->params) == 1)
|
||||
{
|
||||
cparam = ppdFirstCustomParam(coption);
|
||||
snprintf(keyword, sizeof(keyword), "%s.%s", coption->keyword, cparam->name);
|
||||
diff -up cups-1.4.2/CHANGES-1.4.txt.str3418 cups-1.4.2/CHANGES-1.4.txt
|
@ -1,22 +0,0 @@
|
||||
diff -up cups-1.4.2/templates/pl/jobs-header.tmpl.localize cups-1.4.2/templates/pl/jobs-header.tmpl
|
||||
--- cups-1.4.2/templates/pl/jobs-header.tmpl.localize 2009-02-25 17:48:35.000000000 +0100
|
||||
+++ cups-1.4.2/templates/pl/jobs-header.tmpl 2009-11-20 13:56:58.000000000 +0100
|
||||
@@ -2,4 +2,4 @@
|
||||
{?which_jobs=completed?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="completed"><INPUT TYPE="SUBMIT" VALUE="Wyświetl zakończone zadania"></FORM>}
|
||||
{?which_jobs=all?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="all"><INPUT TYPE="SUBMIT" VALUE="Wyświetl wszystkie zadania"></FORM>}</DIV>
|
||||
|
||||
-<P ALIGN="CENTER">{total=0?Brak zadań:Wyświetlanie {#job_id} z {total} {?which_jobs=?aktywnych:{which_jobs=wszystkich?:zakończonych}} zadań{total=1?:s}}.</P>
|
||||
+<P ALIGN="CENTER">{total=0?Brak zadań:Wyświetlanie {#job_id} z {total} {?which_jobs=?aktywnych:{which_jobs=all?:zakończonych}} zadań{total=1?:s}}.</P>
|
||||
diff -up cups-1.4.2/templates/ru/jobs-header.tmpl.localize cups-1.4.2/templates/ru/jobs-header.tmpl
|
||||
--- cups-1.4.2/templates/ru/jobs-header.tmpl.localize 2009-02-17 20:04:25.000000000 +0100
|
||||
+++ cups-1.4.2/templates/ru/jobs-header.tmpl 2009-11-20 13:53:54.000000000 +0100
|
||||
@@ -1,5 +1,6 @@
|
||||
<DIV CLASS="indent">{?which_jobs=?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Показать активные задания"></FORM>}
|
||||
-{?which_jobs=completed?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="Завершено"><INPUT TYPE="SUBMIT" VALUE="Показать завершенные задания"></FORM>}
|
||||
-{?which_jobs=all?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="все"><INPUT TYPE="SUBMIT" VALUE="Показать все задания"></FORM>}</DIV>
|
||||
+{?which_jobs=completed?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="completed"><INPUT TYPE="SUBMIT" VALUE="Показать завершенные задания"></FORM>}
|
||||
+{?which_jobs=all?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="all"><INPUT TYPE="SUBMIT" VALUE="Показать все задания"></FORM>}</DIV>
|
||||
+
|
||||
+<P ALIGN="CENTER">{total=0?Нет заданий:Задание {#job_id} из {total} {?which_jobs=?активных:{which_jobs=all?:завершенных}}.</P>
|
||||
|
||||
-<P ALIGN="CENTER">{total=0?Нет заданий:Задание {#job_id} из {total} {?which_jobs=?активных:{which_jobs=всех?:завершенных}}.</P>
|
@ -1,145 +0,0 @@
|
||||
diff -up cups-1.4.2/scheduler/job.c.str3425 cups-1.4.2/scheduler/job.c
|
||||
--- cups-1.4.2/scheduler/job.c.str3425 2010-03-09 16:59:12.000000000 +0100
|
||||
+++ cups-1.4.2/scheduler/job.c 2010-03-09 17:02:57.000000000 +0100
|
||||
@@ -253,7 +253,7 @@ cupsdCancelJobs(const char *dest, /* I -
|
||||
if (purge)
|
||||
cupsdSetJobState(job, IPP_JOB_CANCELED, CUPSD_JOB_PURGE,
|
||||
"Job purged by user.");
|
||||
- else
|
||||
+ else if (job->state_value < IPP_JOB_CANCELED)
|
||||
cupsdSetJobState(job, IPP_JOB_CANCELED, CUPSD_JOB_DEFAULT,
|
||||
"Job canceled by user.");
|
||||
}
|
||||
@@ -433,11 +433,11 @@ cupsdCleanJobs(void)
|
||||
cupsd_job_t *job; /* Current job */
|
||||
|
||||
|
||||
- if (MaxJobs <= 0)
|
||||
+ if (MaxJobs <= 0 && JobHistory)
|
||||
return;
|
||||
|
||||
for (job = (cupsd_job_t *)cupsArrayFirst(Jobs);
|
||||
- job && cupsArrayCount(Jobs) >= MaxJobs;
|
||||
+ job && (cupsArrayCount(Jobs) >= MaxJobs || !JobHistory);
|
||||
job = (cupsd_job_t *)cupsArrayNext(Jobs))
|
||||
if (job->state_value >= IPP_JOB_CANCELED && !job->printer)
|
||||
cupsdDeleteJob(job, CUPSD_JOB_PURGE);
|
||||
@@ -2286,12 +2286,14 @@ cupsdSetJobState(
|
||||
if (!cupsdLoadJob(job))
|
||||
return;
|
||||
|
||||
- /*
|
||||
- * Don't do anything if the state is unchanged...
|
||||
- */
|
||||
-
|
||||
- if (newstate == (oldstate = job->state_value))
|
||||
- return;
|
||||
+ /*
|
||||
+ * Don't do anything if the state is unchanged and we aren't purging the
|
||||
+ * job...
|
||||
+ */
|
||||
+
|
||||
+ oldstate = job->state_value;
|
||||
+ if (newstate == oldstate && action != CUPSD_JOB_PURGE)
|
||||
+ return;
|
||||
|
||||
/*
|
||||
* Stop any processes that are working on the current job...
|
||||
@@ -2499,7 +2501,14 @@ cupsdSetJobState(
|
||||
cupsdMarkDirty(CUPSD_DIRTY_JOBS);
|
||||
}
|
||||
else if (!job->printer)
|
||||
+ {
|
||||
+ /*
|
||||
+ * Delete the job immediately if not actively printing...
|
||||
+ */
|
||||
+
|
||||
cupsdDeleteJob(job, CUPSD_JOB_PURGE);
|
||||
+ job = NULL;
|
||||
+ }
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -2507,7 +2516,7 @@ cupsdSetJobState(
|
||||
* Finalize the job immediately if we forced things...
|
||||
*/
|
||||
|
||||
- if (action == CUPSD_JOB_FORCE)
|
||||
+ if (action >= CUPSD_JOB_FORCE && job && job->printer)
|
||||
finalize_job(job);
|
||||
|
||||
/*
|
||||
diff -up cups-1.4.2/scheduler/main.c.str3425 cups-1.4.2/scheduler/main.c
|
||||
--- cups-1.4.2/scheduler/main.c.str3425 2010-03-09 16:59:12.000000000 +0100
|
||||
+++ cups-1.4.2/scheduler/main.c 2010-03-09 16:59:12.000000000 +0100
|
||||
@@ -389,7 +389,7 @@ main(int argc, /* I - Number of comm
|
||||
* parent's file descriptors to be blocking. This is a workaround for a
|
||||
* limitation of userland libpthread on OpenBSD.
|
||||
*/
|
||||
-
|
||||
+
|
||||
_thread_sys_closefrom(0);
|
||||
#endif /* __OpenBSD__ */
|
||||
|
||||
@@ -817,8 +817,8 @@ main(int argc, /* I - Number of comm
|
||||
|
||||
if (timeout == 86400 && Launchd && LaunchdTimeout && !NumPolled &&
|
||||
!cupsArrayCount(ActiveJobs) &&
|
||||
- (!Browsing ||
|
||||
- (!BrowseRemoteProtocols &&
|
||||
+ (!Browsing ||
|
||||
+ (!BrowseRemoteProtocols &&
|
||||
(!NumBrowsers || !BrowseLocalProtocols ||
|
||||
cupsArrayCount(Printers) == 0))))
|
||||
{
|
||||
@@ -1046,6 +1046,7 @@ main(int argc, /* I - Number of comm
|
||||
if ((current_time - senddoc_time) >= 10)
|
||||
{
|
||||
cupsdCheckJobs();
|
||||
+ cupsdCleanJobs();
|
||||
senddoc_time = current_time;
|
||||
}
|
||||
|
||||
@@ -1204,8 +1205,8 @@ main(int argc, /* I - Number of comm
|
||||
#endif /* HAVE_GSSAPI */
|
||||
|
||||
#if defined(__APPLE__) && defined(HAVE_DLFCN_H)
|
||||
- /*
|
||||
- * Unload Print Service quota enforcement library (X Server only)
|
||||
+ /*
|
||||
+ * Unload Print Service quota enforcement library (X Server only)
|
||||
*/
|
||||
|
||||
PSQUpdateQuotaProc = NULL;
|
||||
@@ -1562,13 +1563,13 @@ launchd_checkin(void)
|
||||
|
||||
if (lis)
|
||||
{
|
||||
- cupsdLogMessage(CUPSD_LOG_DEBUG,
|
||||
+ cupsdLogMessage(CUPSD_LOG_DEBUG,
|
||||
"launchd_checkin: Matched existing listener %s with fd %d...",
|
||||
httpAddrString(&(lis->address), s, sizeof(s)), fd);
|
||||
}
|
||||
else
|
||||
{
|
||||
- cupsdLogMessage(CUPSD_LOG_DEBUG,
|
||||
+ cupsdLogMessage(CUPSD_LOG_DEBUG,
|
||||
"launchd_checkin: Adding new listener %s with fd %d...",
|
||||
httpAddrString(&addr, s, sizeof(s)), fd);
|
||||
|
||||
@@ -1622,12 +1623,12 @@ launchd_checkout(void)
|
||||
|
||||
/*
|
||||
* Create or remove the launchd KeepAlive file based on whether
|
||||
- * there are active jobs, polling, browsing for remote printers or
|
||||
+ * there are active jobs, polling, browsing for remote printers or
|
||||
* shared printers to advertise...
|
||||
*/
|
||||
|
||||
- if ((cupsArrayCount(ActiveJobs) || NumPolled ||
|
||||
- (Browsing &&
|
||||
+ if ((cupsArrayCount(ActiveJobs) || NumPolled ||
|
||||
+ (Browsing &&
|
||||
(BrowseRemoteProtocols ||
|
||||
(BrowseLocalProtocols && NumBrowsers && cupsArrayCount(Printers))))))
|
||||
{
|
@ -1,57 +0,0 @@
|
||||
diff -up cups-1.4.2/scheduler/ipp.c.str3428 cups-1.4.2/scheduler/ipp.c
|
||||
--- cups-1.4.2/scheduler/ipp.c.str3428 2009-12-08 12:24:31.177373309 +0000
|
||||
+++ cups-1.4.2/scheduler/ipp.c 2009-12-08 12:27:33.910498083 +0000
|
||||
@@ -1860,8 +1860,6 @@ add_job(cupsd_client_t *con, /* I - Cl
|
||||
"job-media-sheets-completed", 0);
|
||||
ippAddString(job->attrs, IPP_TAG_JOB, IPP_TAG_URI, "job-printer-uri", NULL,
|
||||
printer->uri);
|
||||
- ippAddString(job->attrs, IPP_TAG_JOB, IPP_TAG_NAME, "job-name", NULL,
|
||||
- title);
|
||||
|
||||
if ((attr = ippFindAttribute(job->attrs, "job-k-octets",
|
||||
IPP_TAG_INTEGER)) != NULL)
|
||||
@@ -3438,7 +3436,7 @@ apple_register_profiles(
|
||||
num_profiles ++;
|
||||
}
|
||||
|
||||
-
|
||||
+
|
||||
/*
|
||||
* If we have profiles, add them...
|
||||
*/
|
||||
@@ -3484,7 +3482,7 @@ apple_register_profiles(
|
||||
snprintf(q_keyword, sizeof(q_keyword), "Default%s", attr->value);
|
||||
q2_attr = ppdFindAttr(ppd, q_keyword, NULL);
|
||||
}
|
||||
- else
|
||||
+ else
|
||||
q2_attr = ppdFindAttr(ppd, "DefaultMediaType", NULL);
|
||||
|
||||
if (q2_attr && q2_attr->value && q2_attr->value[0])
|
||||
@@ -3498,7 +3496,7 @@ apple_register_profiles(
|
||||
snprintf(q_keyword, sizeof(q_keyword), "Default%s", attr->value);
|
||||
q3_attr = ppdFindAttr(ppd, q_keyword, NULL);
|
||||
}
|
||||
- else
|
||||
+ else
|
||||
q3_attr = ppdFindAttr(ppd, "DefaultResolution", NULL);
|
||||
|
||||
if (q3_attr && q3_attr->value && q3_attr->value[0])
|
||||
@@ -3667,7 +3665,7 @@ apple_register_profiles(
|
||||
attr = ppdFindAttr(ppd, "DefaultColorSpace", NULL);
|
||||
|
||||
num_profiles = (attr && ppd->colorspace == PPD_CS_GRAY) ? 1 : 2;
|
||||
-
|
||||
+
|
||||
if ((profiles = calloc(num_profiles, sizeof(CMDeviceProfileArray))) == NULL)
|
||||
{
|
||||
cupsdLogMessage(CUPSD_LOG_ERROR,
|
||||
@@ -4762,7 +4760,7 @@ check_quotas(cupsd_client_t *con, /* I
|
||||
if (q->page_count == -4) /* special case: unlimited user */
|
||||
{
|
||||
cupsdLogMessage(CUPSD_LOG_INFO,
|
||||
- "User \"%s\" request approved for printer %s (%s): "
|
||||
+ "User \"%s\" request approved for printer %s (%s): "
|
||||
"unlimited quota.",
|
||||
username, p->name, p->info);
|
||||
q->page_count = 0; /* allow user to print */
|
@ -1,32 +0,0 @@
|
||||
diff -up cups-1.4.2/scheduler/ipp.c.str3431 cups-1.4.2/scheduler/ipp.c
|
||||
--- cups-1.4.2/scheduler/ipp.c.str3431 2009-12-08 12:28:21.095374048 +0000
|
||||
+++ cups-1.4.2/scheduler/ipp.c 2009-12-08 12:32:03.829498891 +0000
|
||||
@@ -7183,6 +7183,7 @@ get_job_attrs(cupsd_client_t *con, /* I
|
||||
ipp_attribute_t *attr; /* Current attribute */
|
||||
int jobid; /* Job ID */
|
||||
cupsd_job_t *job; /* Current job */
|
||||
+ cupsd_printer_t *printer; /* Current printer */
|
||||
char scheme[HTTP_MAX_URI], /* Method portion of URI */
|
||||
username[HTTP_MAX_URI], /* Username portion of URI */
|
||||
host[HTTP_MAX_URI], /* Host portion of URI */
|
||||
@@ -7257,7 +7258,19 @@ get_job_attrs(cupsd_client_t *con, /* I
|
||||
* Check policy...
|
||||
*/
|
||||
|
||||
- if ((status = cupsdCheckPolicy(DefaultPolicyPtr, con, NULL)) != HTTP_OK)
|
||||
+ if ((printer = job->printer) == NULL)
|
||||
+ printer = cupsdFindDest(job->dest);
|
||||
+
|
||||
+ if (printer)
|
||||
+ {
|
||||
+ if ((status = cupsdCheckPolicy(printer->op_policy_ptr, con,
|
||||
+ NULL)) != HTTP_OK)
|
||||
+ {
|
||||
+ send_http_error(con, status, printer);
|
||||
+ return;
|
||||
+ }
|
||||
+ }
|
||||
+ else if ((status = cupsdCheckPolicy(DefaultPolicyPtr, con, NULL)) != HTTP_OK)
|
||||
{
|
||||
send_http_error(con, status, NULL);
|
||||
return;
|
@ -1,45 +0,0 @@
|
||||
diff -up cups-1.4.2/cups/util.c.str3435 cups-1.4.2/cups/util.c
|
||||
--- cups-1.4.2/cups/util.c.str3435 2009-06-22 21:44:34.000000000 +0100
|
||||
+++ cups-1.4.2/cups/util.c 2009-12-08 12:11:38.647375446 +0000
|
||||
@@ -1511,12 +1511,36 @@ cupsPrintFiles2(
|
||||
return (0);
|
||||
}
|
||||
|
||||
- status = cupsStartDocument(http, name, job_id, docname, format,
|
||||
- i == (num_files - 1));
|
||||
+ do
|
||||
+ {
|
||||
+ cupsFileRewind(fp);
|
||||
+
|
||||
+ status = cupsStartDocument(http, name, job_id, docname, format,
|
||||
+ i == (num_files - 1));
|
||||
+
|
||||
+ while (status == HTTP_CONTINUE &&
|
||||
+ (bytes = cupsFileRead(fp, buffer, sizeof(buffer))) > 0)
|
||||
+ status = cupsWriteRequestData(http, buffer, bytes);
|
||||
+
|
||||
+ if (status == HTTP_UNAUTHORIZED)
|
||||
+ {
|
||||
+ char resource[1024]; /* Printer resource */
|
||||
|
||||
- while (status == HTTP_CONTINUE &&
|
||||
- (bytes = cupsFileRead(fp, buffer, sizeof(buffer))) > 0)
|
||||
- status = cupsWriteRequestData(http, buffer, bytes);
|
||||
+ snprintf(resource, sizeof(resource), "/printers/%s", name);
|
||||
+
|
||||
+ if (!cupsDoAuthentication(http, "POST", resource))
|
||||
+ {
|
||||
+ if (httpReconnect(http))
|
||||
+ {
|
||||
+ _cupsSetError(IPP_SERVICE_UNAVAILABLE, NULL, 0);
|
||||
+ return (0);
|
||||
+ }
|
||||
+ }
|
||||
+ else
|
||||
+ status = HTTP_AUTHORIZATION_CANCELED;
|
||||
+ }
|
||||
+ }
|
||||
+ while (status == HTTP_UNAUTHORIZED);
|
||||
|
||||
cupsFileClose(fp);
|
||||
|
@ -1,33 +0,0 @@
|
||||
diff -up cups-1.4.2/cgi-bin/ipp-var.c.str3436 cups-1.4.2/cgi-bin/ipp-var.c
|
||||
--- cups-1.4.2/cgi-bin/ipp-var.c.str3436 2009-11-09 23:01:17.000000000 +0000
|
||||
+++ cups-1.4.2/cgi-bin/ipp-var.c 2009-12-08 12:19:01.988500453 +0000
|
||||
@@ -333,7 +333,7 @@ cgiMoveJobs(http_t *http, /* I - Co
|
||||
NULL, job_uri);
|
||||
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD,
|
||||
"requested-attributes", NULL, "job-printer-uri");
|
||||
-
|
||||
+
|
||||
if ((response = cupsDoRequest(http, request, "/")) != NULL)
|
||||
{
|
||||
if ((attr = ippFindAttribute(response, "job-printer-uri",
|
||||
@@ -926,7 +926,7 @@ cgiRewriteURL(const char *uri, /* I - C
|
||||
ishttps ? "https" : "http",
|
||||
userpass, hostname, port, resource);
|
||||
else
|
||||
- snprintf(url, urlsize, "%s://%s:%d%s",
|
||||
+ snprintf(url, urlsize, "%s://%s:%d%s",
|
||||
ishttps ? "https" : "http",
|
||||
hostname, port, resource);
|
||||
}
|
||||
@@ -1518,7 +1518,11 @@ cgiShowJobs(http_t *http, /* I - Co
|
||||
*/
|
||||
|
||||
if (dest)
|
||||
+ {
|
||||
snprintf(val, sizeof(val), "/%s/%s", section, dest);
|
||||
+ cgiSetVariable("PRINTER_NAME", dest);
|
||||
+ cgiSetVariable("PRINTER_URI_SUPPORTED", val);
|
||||
+ }
|
||||
else
|
||||
strlcpy(val, "/jobs/", sizeof(val));
|
||||
|
@ -1,126 +0,0 @@
|
||||
diff -up cups-1.4.2/cgi-bin/admin.c.str3439 cups-1.4.2/cgi-bin/admin.c
|
||||
--- cups-1.4.2/cgi-bin/admin.c.str3439 2009-12-08 10:03:36.412157983 +0000
|
||||
+++ cups-1.4.2/cgi-bin/admin.c 2009-12-08 10:03:41.659157246 +0000
|
||||
@@ -3320,11 +3320,16 @@ do_set_options(http_t *http, /* I - HTT
|
||||
for (option = ppdFirstOption(ppd);
|
||||
option;
|
||||
option = ppdNextOption(ppd))
|
||||
+ {
|
||||
if ((var = cgiGetVariable(option->keyword)) != NULL)
|
||||
{
|
||||
have_options = 1;
|
||||
ppdMarkOption(ppd, option->keyword, var);
|
||||
+ fprintf(stderr, "DEBUG: Set %s to %s...\n", option->keyword, var);
|
||||
}
|
||||
+ else
|
||||
+ fprintf(stderr, "DEBUG: Didn't find %s...\n", option->keyword);
|
||||
+ }
|
||||
}
|
||||
|
||||
if (!have_options || ppdConflicts(ppd))
|
||||
diff -up cups-1.4.2/cups/conflicts.c.str3439 cups-1.4.2/cups/conflicts.c
|
||||
--- cups-1.4.2/cups/conflicts.c.str3439 2009-05-18 23:55:15.000000000 +0100
|
||||
+++ cups-1.4.2/cups/conflicts.c 2009-12-08 10:03:41.657157719 +0000
|
||||
@@ -583,9 +583,13 @@ ppdConflicts(ppd_file_t *ppd) /* I - PP
|
||||
* Clear all conflicts...
|
||||
*/
|
||||
|
||||
+ cupsArraySave(ppd->options);
|
||||
+
|
||||
for (o = ppdFirstOption(ppd); o; o = ppdNextOption(ppd))
|
||||
o->conflicted = 0;
|
||||
|
||||
+ cupsArrayRestore(ppd->options);
|
||||
+
|
||||
/*
|
||||
* Test for conflicts...
|
||||
*/
|
||||
diff -up cups-1.4.2/cups/mark.c.str3439 cups-1.4.2/cups/mark.c
|
||||
--- cups-1.4.2/cups/mark.c.str3439 2009-04-20 22:37:14.000000000 +0100
|
||||
+++ cups-1.4.2/cups/mark.c 2009-12-08 10:03:41.656157620 +0000
|
||||
@@ -842,6 +842,8 @@ ppd_mark_option(ppd_file_t *ppd, /* I -
|
||||
|
||||
if (!strcasecmp(option, "AP_D_InputSlot"))
|
||||
{
|
||||
+ cupsArraySave(ppd->options);
|
||||
+
|
||||
if ((o = ppdFindOption(ppd, "InputSlot")) != NULL)
|
||||
{
|
||||
key.option = o;
|
||||
@@ -851,13 +853,21 @@ ppd_mark_option(ppd_file_t *ppd, /* I -
|
||||
cupsArrayRemove(ppd->marked, oldc);
|
||||
}
|
||||
}
|
||||
+
|
||||
+ cupsArrayRestore(ppd->options);
|
||||
}
|
||||
|
||||
/*
|
||||
* Check for custom options...
|
||||
*/
|
||||
|
||||
- if ((o = ppdFindOption(ppd, option)) == NULL)
|
||||
+ cupsArraySave(ppd->options);
|
||||
+
|
||||
+ o = ppdFindOption(ppd, option);
|
||||
+
|
||||
+ cupsArrayRestore(ppd->options);
|
||||
+
|
||||
+ if (!o)
|
||||
return;
|
||||
|
||||
loc = localeconv();
|
||||
@@ -1060,6 +1070,8 @@ ppd_mark_option(ppd_file_t *ppd, /* I -
|
||||
* appropriate...
|
||||
*/
|
||||
|
||||
+ cupsArraySave(ppd->options);
|
||||
+
|
||||
if (!strcasecmp(option, "PageSize"))
|
||||
{
|
||||
if ((o = ppdFindOption(ppd, "PageRegion")) != NULL)
|
||||
@@ -1084,6 +1096,8 @@ ppd_mark_option(ppd_file_t *ppd, /* I -
|
||||
}
|
||||
}
|
||||
}
|
||||
+
|
||||
+ cupsArrayRestore(ppd->options);
|
||||
}
|
||||
else if (!strcasecmp(option, "InputSlot"))
|
||||
{
|
||||
@@ -1091,6 +1105,8 @@ ppd_mark_option(ppd_file_t *ppd, /* I -
|
||||
* Unmark ManualFeed option...
|
||||
*/
|
||||
|
||||
+ cupsArraySave(ppd->options);
|
||||
+
|
||||
if ((o = ppdFindOption(ppd, "ManualFeed")) != NULL)
|
||||
{
|
||||
key.option = o;
|
||||
@@ -1100,6 +1116,8 @@ ppd_mark_option(ppd_file_t *ppd, /* I -
|
||||
cupsArrayRemove(ppd->marked, oldc);
|
||||
}
|
||||
}
|
||||
+
|
||||
+ cupsArrayRestore(ppd->options);
|
||||
}
|
||||
else if (!strcasecmp(option, "ManualFeed") &&
|
||||
!strcasecmp(choice, "True"))
|
||||
@@ -1108,6 +1126,8 @@ ppd_mark_option(ppd_file_t *ppd, /* I -
|
||||
* Unmark InputSlot option...
|
||||
*/
|
||||
|
||||
+ cupsArraySave(ppd->options);
|
||||
+
|
||||
if ((o = ppdFindOption(ppd, "InputSlot")) != NULL)
|
||||
{
|
||||
key.option = o;
|
||||
@@ -1117,6 +1137,8 @@ ppd_mark_option(ppd_file_t *ppd, /* I -
|
||||
cupsArrayRemove(ppd->marked, oldc);
|
||||
}
|
||||
}
|
||||
+
|
||||
+ cupsArrayRestore(ppd->options);
|
||||
}
|
||||
}
|
||||
|
@ -1,104 +0,0 @@
|
||||
diff -up cups-1.4.2/cgi-bin/admin.c.str3440 cups-1.4.2/cgi-bin/admin.c
|
||||
--- cups-1.4.2/cgi-bin/admin.c.str3440 2009-12-08 10:10:05.529157178 +0000
|
||||
+++ cups-1.4.2/cgi-bin/admin.c 2009-12-08 10:10:12.571033051 +0000
|
||||
@@ -3436,6 +3436,16 @@ do_set_options(http_t *http, /* I - HTT
|
||||
{
|
||||
cgiSetArray("ckeyword", k, option->keyword);
|
||||
cgiSetArray("ckeytext", k, option->text);
|
||||
+
|
||||
+ for (m = 0; m < option->num_choices; m ++)
|
||||
+ {
|
||||
+ if (option->choices[m].marked)
|
||||
+ {
|
||||
+ cgiSetArray("cchoice", k, option->choices[m].text);
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
k ++;
|
||||
}
|
||||
|
||||
diff -up cups-1.4.2/templates/de/option-conflict.tmpl.str3440 cups-1.4.2/templates/de/option-conflict.tmpl
|
||||
--- cups-1.4.2/templates/de/option-conflict.tmpl.str3440 2009-04-03 16:55:28.000000000 +0100
|
||||
+++ cups-1.4.2/templates/de/option-conflict.tmpl 2009-12-08 10:10:12.567157789 +0000
|
||||
@@ -1,7 +1,7 @@
|
||||
<P><B>Error:</B> The following options are conflicting:</P>
|
||||
|
||||
<UL>
|
||||
-{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A></LI>
|
||||
+{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A>: {cchoice}</LI>
|
||||
}</UL>
|
||||
|
||||
<P>Bitte ändern sie eine oder mehrere Einstellungen um die Konflikte zu lösen.</P>
|
||||
diff -up cups-1.4.2/templates/es/option-conflict.tmpl.str3440 cups-1.4.2/templates/es/option-conflict.tmpl
|
||||
--- cups-1.4.2/templates/es/option-conflict.tmpl.str3440 2008-12-08 21:20:06.000000000 +0000
|
||||
+++ cups-1.4.2/templates/es/option-conflict.tmpl 2009-12-08 10:10:12.568157603 +0000
|
||||
@@ -1,7 +1,7 @@
|
||||
<P><B>Error:</B> Las siguientes opciones están en conflicto:</P>
|
||||
|
||||
<UL>
|
||||
-{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A></LI>
|
||||
+{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A>: {cchoice}</LI>
|
||||
}</UL>
|
||||
|
||||
<P>Cambie una o más de las opciones para resolver el problema.</P>
|
||||
diff -up cups-1.4.2/templates/eu/option-conflict.tmpl.str3440 cups-1.4.2/templates/eu/option-conflict.tmpl
|
||||
--- cups-1.4.2/templates/eu/option-conflict.tmpl.str3440 2009-07-07 17:52:34.000000000 +0100
|
||||
+++ cups-1.4.2/templates/eu/option-conflict.tmpl 2009-12-08 10:10:12.569157261 +0000
|
||||
@@ -1,7 +1,7 @@
|
||||
<P><B>Errorea:</B> honako aukerak gatazkan daude:</P>
|
||||
|
||||
<UL>
|
||||
-{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A></LI>
|
||||
+{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A>: {cchoice}</LI>
|
||||
}</UL>
|
||||
|
||||
<P>Aldatu aukera bat edo gehiago gatazkak ebazteko.</P>
|
||||
diff -up cups-1.4.2/templates/ja/option-conflict.tmpl.str3440 cups-1.4.2/templates/ja/option-conflict.tmpl
|
||||
--- cups-1.4.2/templates/ja/option-conflict.tmpl.str3440 2009-02-17 19:04:25.000000000 +0000
|
||||
+++ cups-1.4.2/templates/ja/option-conflict.tmpl 2009-12-08 10:10:12.566157419 +0000
|
||||
@@ -1,7 +1,7 @@
|
||||
<P><B>エラー:</B> 以下のオプションは競合します:</P>
|
||||
|
||||
<UL>
|
||||
-{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A></LI>
|
||||
+{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A>: {cchoice}</LI>
|
||||
}</UL>
|
||||
|
||||
<P>競合を解決するために、1 つ以上のオプションを変更してください。</P>
|
||||
diff -up cups-1.4.2/templates/option-conflict.tmpl.str3440 cups-1.4.2/templates/option-conflict.tmpl
|
||||
--- cups-1.4.2/templates/option-conflict.tmpl.str3440 2005-08-24 20:25:49.000000000 +0100
|
||||
+++ cups-1.4.2/templates/option-conflict.tmpl 2009-12-08 10:10:12.566157419 +0000
|
||||
@@ -1,7 +1,7 @@
|
||||
<P><B>Error:</B> The following options are conflicting:</P>
|
||||
|
||||
<UL>
|
||||
-{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A></LI>
|
||||
+{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A>: {cchoice}</LI>
|
||||
}</UL>
|
||||
|
||||
<P>Please change one or more of the options to resolve the conflicts.</P>
|
||||
diff -up cups-1.4.2/templates/pl/option-conflict.tmpl.str3440 cups-1.4.2/templates/pl/option-conflict.tmpl
|
||||
--- cups-1.4.2/templates/pl/option-conflict.tmpl.str3440 2009-02-25 16:48:35.000000000 +0000
|
||||
+++ cups-1.4.2/templates/pl/option-conflict.tmpl 2009-12-08 10:10:12.567157789 +0000
|
||||
@@ -1,7 +1,7 @@
|
||||
<P><B>Błąd:</B> następujące opcje są w konflikcie ze sobą:</P>
|
||||
|
||||
<UL>
|
||||
-{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A></LI>
|
||||
+{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A>: {cchoice}</LI>
|
||||
}</UL>
|
||||
|
||||
<P>Proszę zmienić jedną lub więcej opcji, aby rozwiązać konflikt.</P>
|
||||
diff -up cups-1.4.2/templates/ru/option-conflict.tmpl.str3440 cups-1.4.2/templates/ru/option-conflict.tmpl
|
||||
--- cups-1.4.2/templates/ru/option-conflict.tmpl.str3440 2009-02-17 19:04:25.000000000 +0000
|
||||
+++ cups-1.4.2/templates/ru/option-conflict.tmpl 2009-12-08 10:10:12.567157789 +0000
|
||||
@@ -1,7 +1,7 @@
|
||||
<P><B>Ошибка:</B> следующие параметры конфликтуют:</P>
|
||||
|
||||
<UL>
|
||||
-{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A></LI>
|
||||
+{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A>: {cchoice}</LI>
|
||||
}</UL>
|
||||
|
||||
<P>Измените один или несколько параметров для того, чтобы избежать конфликта.</P>
|
@ -1,11 +0,0 @@
|
||||
diff -up cups-1.4.2/conf/mime.convs.in.str3442 cups-1.4.2/conf/mime.convs.in
|
||||
--- cups-1.4.2/conf/mime.convs.in.str3442 2009-05-22 20:30:39.000000000 +0100
|
||||
+++ cups-1.4.2/conf/mime.convs.in 2009-12-08 10:19:40.044329553 +0000
|
||||
@@ -47,6 +47,7 @@ application/x-perl application/postscri
|
||||
application/x-shell application/postscript 33 texttops
|
||||
text/plain application/postscript 33 texttops
|
||||
text/html application/postscript 33 texttops
|
||||
+text/css application/postscript 33 texttops
|
||||
image/gif application/vnd.cups-postscript 66 imagetops
|
||||
image/png application/vnd.cups-postscript 66 imagetops
|
||||
image/jpeg application/vnd.cups-postscript 66 imagetops
|
@ -1,16 +0,0 @@
|
||||
diff -up cups-1.4.2/cups/dest.c.str3448 cups-1.4.2/cups/dest.c
|
||||
--- cups-1.4.2/cups/dest.c.str3448 2009-08-28 23:54:34.000000000 +0100
|
||||
+++ cups-1.4.2/cups/dest.c 2009-12-10 18:15:50.910079549 +0000
|
||||
@@ -145,6 +145,12 @@ cupsAddDest(const char *name, /* I -
|
||||
|
||||
dest = cups_add_dest(name, instance, &num_dests, dests);
|
||||
|
||||
+ /*
|
||||
+ * Find the base dest again now the array has been realloc'd.
|
||||
+ */
|
||||
+
|
||||
+ parent = cupsGetDest(name, NULL, num_dests, *dests);
|
||||
+
|
||||
if (instance && parent && parent->num_options > 0)
|
||||
{
|
||||
/*
|
@ -1,19 +0,0 @@
|
||||
diff -up cups-1.4.2/backend/ipp.c.str3458 cups-1.4.2/backend/ipp.c
|
||||
--- cups-1.4.2/backend/ipp.c.str3458 2009-12-22 13:04:25.021208333 +0000
|
||||
+++ cups-1.4.2/backend/ipp.c 2009-12-22 13:04:26.570082893 +0000
|
||||
@@ -802,6 +802,15 @@ main(int argc, /* I - Number of comm
|
||||
|
||||
return (CUPS_BACKEND_STOP);
|
||||
}
|
||||
+ else if (ipp_status == IPP_NOT_AUTHORIZED || ipp_status == IPP_FORBIDDEN)
|
||||
+ {
|
||||
+ if (!strncmp(httpGetField(http, HTTP_FIELD_WWW_AUTHENTICATE),
|
||||
+ "Negotiate", 9))
|
||||
+ auth_info_required = "negotiate";
|
||||
+
|
||||
+ fprintf(stderr, "ATTR: auth-info-required=%s\n", auth_info_required);
|
||||
+ return (CUPS_BACKEND_AUTH_REQUIRED);
|
||||
+ }
|
||||
else
|
||||
{
|
||||
_cupsLangPrintf(stderr,
|
@ -1,14 +0,0 @@
|
||||
diff -up cups-1.4.2/backend/ipp.c.str3460 cups-1.4.2/backend/ipp.c
|
||||
--- cups-1.4.2/backend/ipp.c.str3460 2010-01-15 10:25:14.720258721 +0000
|
||||
+++ cups-1.4.2/backend/ipp.c 2010-01-15 10:28:57.218384231 +0000
|
||||
@@ -1435,7 +1435,10 @@ main(int argc, /* I - Number of comm
|
||||
else if (ipp_status > IPP_OK_CONFLICT)
|
||||
return (CUPS_BACKEND_FAILED);
|
||||
else
|
||||
+ {
|
||||
+ _cupsLangPuts(stderr, _("INFO: Ready to print.\n"));
|
||||
return (CUPS_BACKEND_OK);
|
||||
+ }
|
||||
}
|
||||
|
||||
|
12
cups-str3503.patch
Normal file
12
cups-str3503.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -up cups-1.4.3/cups/dest.c.str3503 cups-1.4.3/cups/dest.c
|
||||
--- cups-1.4.3/cups/dest.c.str3503 2010-03-31 13:31:42.000000000 +0200
|
||||
+++ cups-1.4.3/cups/dest.c 2010-03-31 13:32:52.000000000 +0200
|
||||
@@ -553,7 +553,7 @@ cupsGetNamedDest(http_t *http, /* I
|
||||
|
||||
if (!cups_get_sdests(http, op, name, 0, &dest))
|
||||
{
|
||||
- if (op == CUPS_GET_DEFAULT || name)
|
||||
+ if (op == CUPS_GET_DEFAULT || (name && !set_as_default))
|
||||
return (NULL);
|
||||
|
||||
/*
|
199
cups.spec
199
cups.spec
@ -7,8 +7,8 @@
|
||||
|
||||
Summary: Common Unix Printing System
|
||||
Name: cups
|
||||
Version: 1.4.2
|
||||
Release: 36%{?dist}
|
||||
Version: 1.4.3
|
||||
Release: 1%{?dist}
|
||||
License: GPLv2
|
||||
Group: System Environment/Daemons
|
||||
Source: http://ftp.easysw.com/pub/cups/%{version}/cups-%{version}-source.tar.bz2
|
||||
@ -38,60 +38,36 @@ Patch4: cups-serial.patch
|
||||
Patch5: cups-banners.patch
|
||||
Patch6: cups-serverbin-compat.patch
|
||||
Patch7: cups-no-export-ssllibs.patch
|
||||
Patch8: cups-str3448.patch
|
||||
Patch9: cups-direct-usb.patch
|
||||
Patch10: cups-lpr-help.patch
|
||||
Patch11: cups-peercred.patch
|
||||
Patch12: cups-pid.patch
|
||||
Patch13: cups-page-label.patch
|
||||
Patch14: cups-eggcups.patch
|
||||
Patch15: cups-getpass.patch
|
||||
Patch16: cups-driverd-timeout.patch
|
||||
Patch17: cups-strict-ppd-line-length.patch
|
||||
Patch18: cups-logrotate.patch
|
||||
Patch19: cups-usb-paperout.patch
|
||||
Patch20: cups-build.patch
|
||||
Patch21: cups-res_init.patch
|
||||
Patch22: cups-filter-debug.patch
|
||||
Patch23: cups-uri-compat.patch
|
||||
Patch24: cups-cups-get-classes.patch
|
||||
Patch25: cups-avahi.patch
|
||||
Patch26: cups-str3382.patch
|
||||
Patch27: cups-str3285_v2-str3503.patch
|
||||
Patch28: cups-str3390.patch
|
||||
Patch29: cups-str3391.patch
|
||||
Patch30: cups-str3381.patch
|
||||
Patch31: cups-str3399.patch
|
||||
Patch32: cups-str3403.patch
|
||||
Patch33: cups-str3407.patch
|
||||
Patch34: cups-str3418.patch
|
||||
Patch35: cups-CVE-2009-3553.patch
|
||||
Patch36: cups-str3422.patch
|
||||
Patch37: cups-str3413.patch
|
||||
Patch38: cups-str3439.patch
|
||||
Patch39: cups-str3440.patch
|
||||
Patch40: cups-str3442.patch
|
||||
Patch41: cups-negative-snmp-string-length.patch
|
||||
Patch42: cups-sidechannel-intrs.patch
|
||||
Patch43: cups-media-empty-warning.patch
|
||||
Patch44: cups-str3435.patch
|
||||
Patch45: cups-str3436.patch
|
||||
Patch46: cups-str3425.patch
|
||||
Patch47: cups-str3428.patch
|
||||
Patch48: cups-str3431.patch
|
||||
Patch49: cups-gnutls-gcrypt-threads.patch
|
||||
Patch50: cups-str3458.patch
|
||||
Patch51: cups-0755.patch
|
||||
Patch52: cups-str3460.patch
|
||||
Patch53: cups-EAI_AGAIN.patch
|
||||
Patch54: cups-str3505.patch
|
||||
Patch55: cups-CVE-2010-0302.patch
|
||||
Patch56: cups-str3541.patch
|
||||
Patch8: cups-direct-usb.patch
|
||||
Patch9: cups-lpr-help.patch
|
||||
Patch10: cups-peercred.patch
|
||||
Patch11: cups-pid.patch
|
||||
Patch12: cups-page-label.patch
|
||||
Patch13: cups-eggcups.patch
|
||||
Patch14: cups-getpass.patch
|
||||
Patch15: cups-driverd-timeout.patch
|
||||
Patch16: cups-strict-ppd-line-length.patch
|
||||
Patch17: cups-logrotate.patch
|
||||
Patch18: cups-usb-paperout.patch
|
||||
Patch19: cups-build.patch
|
||||
Patch20: cups-res_init.patch
|
||||
Patch21: cups-filter-debug.patch
|
||||
Patch22: cups-uri-compat.patch
|
||||
Patch23: cups-cups-get-classes.patch
|
||||
Patch24: cups-avahi.patch
|
||||
Patch25: cups-str3382.patch
|
||||
Patch26: cups-str3503.patch
|
||||
Patch27: cups-str3399.patch
|
||||
Patch28: cups-gnutls-gcrypt-threads.patch
|
||||
Patch29: cups-0755.patch
|
||||
Patch30: cups-EAI_AGAIN.patch
|
||||
Patch31: cups-str3505.patch
|
||||
Patch32: cups-str3541.patch
|
||||
|
||||
Patch100: cups-lspp.patch
|
||||
|
||||
## SECURITY PATCHES:
|
||||
|
||||
Patch200: cups-CVE-2010-0302.patch
|
||||
|
||||
Epoch: 1
|
||||
Url: http://www.cups.org/
|
||||
@ -237,111 +213,66 @@ module.
|
||||
%patch6 -p1 -b .serverbin-compat
|
||||
# Don't export SSLLIBS to cups-config.
|
||||
%patch7 -p1 -b .no-export-ssllibs
|
||||
# Avoid use-after-free in cupsAddDest.
|
||||
%patch8 -p1 -b .str3448
|
||||
# Allow file-based usb device URIs.
|
||||
%patch9 -p1 -b .direct-usb
|
||||
%patch8 -p1 -b .direct-usb
|
||||
# Add --help option to lpr.
|
||||
%patch10 -p1 -b .lpr-help
|
||||
%patch9 -p1 -b .lpr-help
|
||||
# Fix compilation of peer credentials support.
|
||||
%patch11 -p1 -b .peercred
|
||||
%patch10 -p1 -b .peercred
|
||||
# Maintain a cupsd.pid file.
|
||||
%patch12 -p1 -b .pid
|
||||
%patch11 -p1 -b .pid
|
||||
# Fix orientation of page labels.
|
||||
%patch13 -p1 -b .page-label
|
||||
%patch12 -p1 -b .page-label
|
||||
# Fix implementation of com.redhat.PrinterSpooler D-Bus object.
|
||||
%patch14 -p1 -b .eggcups
|
||||
%patch13 -p1 -b .eggcups
|
||||
# More sophisticated implementation of cupsGetPassword than getpass.
|
||||
%patch15 -p1 -b .getpass
|
||||
%patch14 -p1 -b .getpass
|
||||
# Increase driverd timeout to 70s to accommodate foomatic.
|
||||
%patch16 -p1 -b .driverd-timeout
|
||||
%patch15 -p1 -b .driverd-timeout
|
||||
# Only enforce maximum PPD line length when in strict mode.
|
||||
%patch17 -p1 -b .strict-ppd-line-length
|
||||
%patch16 -p1 -b .strict-ppd-line-length
|
||||
# Re-open the log if it has been logrotated under us.
|
||||
%patch18 -p1 -b .logrotate
|
||||
%patch17 -p1 -b .logrotate
|
||||
# Support for errno==ENOSPACE-based USB paper-out reporting.
|
||||
%patch19 -p1 -b .usb-paperout
|
||||
%patch18 -p1 -b .usb-paperout
|
||||
# Simplify the DNSSD parts so they can build using the compat library.
|
||||
%patch20 -p1 -b .build
|
||||
%patch19 -p1 -b .build
|
||||
# Re-initialise the resolver on failure in httpAddrGetList().
|
||||
%patch21 -p1 -b .res_init
|
||||
%patch20 -p1 -b .res_init
|
||||
# Log extra debugging information if no filters are available.
|
||||
%patch22 -p1 -b .filter-debug
|
||||
%patch21 -p1 -b .filter-debug
|
||||
# Allow the usb backend to understand old-style URI formats.
|
||||
%patch23 -p1 -b .uri-compat
|
||||
%patch22 -p1 -b .uri-compat
|
||||
# Fix support for older CUPS servers in cupsGetDests.
|
||||
%patch24 -p1 -b .cups-get-classes
|
||||
%patch23 -p1 -b .cups-get-classes
|
||||
# Avahi support in the dnssd backend.
|
||||
%patch25 -p1 -b .avahi
|
||||
%patch24 -p1 -b .avahi
|
||||
# Fix temporary filename creation.
|
||||
%patch26 -p1 -b .str3382
|
||||
%patch25 -p1 -b .str3382
|
||||
# Fix cupsGetNamedDest() when a name is specified.
|
||||
%patch27 -p1 -b .str3285_v2-str3503
|
||||
# Set the PRINTER_IS_SHARED CGI variable.
|
||||
%patch28 -p1 -b .str3390
|
||||
# Set the CGI variables required by the serial backend.
|
||||
%patch29 -p1 -b .str3391
|
||||
# Fix signal handling when using gnutls.
|
||||
%patch30 -p1 -b .str3381
|
||||
# Reset SIGPIPE handler before starting child processes.
|
||||
%patch31 -p1 -b .str3399
|
||||
# Fixed typo in Russian translation of admin CGI page.
|
||||
%patch32 -p1 -b .str3403
|
||||
# Handle out-of-memory more gracefully when loading jobs.
|
||||
%patch33 -p1 -b .str3407
|
||||
# Set PPD_MAKE CGI variable.
|
||||
%patch34 -p1 -b .str3418
|
||||
# Fix use-after-free in select.c.
|
||||
%patch35 -p1 -b .CVE-2009-3553
|
||||
# Fix Russian translations of CGI pages.
|
||||
%patch36 -p1 -b .str3422
|
||||
# Fix SNMP handling.
|
||||
%patch37 -p1 -b .str3413
|
||||
# Fix adjustment of conflicting options in web interface.
|
||||
%patch38 -p1 -b .str3439
|
||||
# Show which option conflicts in web interface.
|
||||
%patch39 -p1 -b .str3440
|
||||
# Provide filter path for text/css.
|
||||
%patch40 -p1 -b .str3442
|
||||
# Fix SNMP handling with negative string lengths.
|
||||
%patch41 -p1 -b .negative-snmp-string-length
|
||||
# Fix signal handling in the sidechannel API.
|
||||
%patch42 -p1 -b .sidechannel-intrs
|
||||
# Stop network backends incorrectly clearing media-empty-warning.
|
||||
%patch43 -p1 -b .media-empty-warning
|
||||
# Fixed authentication bug in cupsPrintFiles2.
|
||||
%patch44 -p1 -b .str3435
|
||||
# Set PRINTER_NAME and PRINTER_URI_SUPPORTED CGI variables.
|
||||
%patch45 -p1 -b .str3436
|
||||
# Clean out completed jobs when PreserveJobHistory is off.
|
||||
%patch46 -p1 -b .str3425
|
||||
# Don't add two job-name attributes to each job object.
|
||||
%patch47 -p1 -b .str3428
|
||||
# Use the Get-Job-Attributes policy for a printer.
|
||||
%patch48 -p1 -b .str3431
|
||||
#%patch49 -p1 -b .gnutls-gcrypt-threads
|
||||
# Fix IPP authentication for servers requiring auth for
|
||||
# IPP-Get-Printer-Attributes.
|
||||
%patch50 -p1 -b .str3458
|
||||
%patch26 -p1 -b .str3503
|
||||
# Don't treat SIGPIPE as an error.
|
||||
%patch27 -p1 -b .str3399
|
||||
#%patch28 -p1 -b .gnutls-gcrypt-threads
|
||||
# Use mode 0755 for binaries and libraries where appropriate.
|
||||
%patch51 -p1 -b .0755
|
||||
# Clear printer status after successful IPP job.
|
||||
%patch52 -p1 -b .str3460
|
||||
%patch29 -p1 -b .0755
|
||||
# Re-initialise the resolver on failure in httpAddrLookup().
|
||||
%patch53 -p1 -b .EAI_AGAIN
|
||||
%patch30 -p1 -b .EAI_AGAIN
|
||||
# Update classes.conf when a class member printer is deleted
|
||||
%patch54 -p1 -b .str3505
|
||||
# Applied patch for CVE-2010-0302 (incomplete fix for CVE-2009-3553,
|
||||
# bug #557775).
|
||||
%patch55 -p1 -b .CVE-2010-0302
|
||||
%patch31 -p1 -b .str3505
|
||||
# Fix lpstat to adhere to -o option.
|
||||
%patch56 -p1 -b .str3541
|
||||
%patch32 -p1 -b .str3541
|
||||
|
||||
%if %lspp
|
||||
# LSPP support.
|
||||
%patch100 -p1 -b .lspp
|
||||
%endif
|
||||
|
||||
# SECURITY PATCHES:
|
||||
# Applied patch for CVE-2010-0302 (incomplete fix for CVE-2009-3553,
|
||||
# bug #557775).
|
||||
%patch200 -p1 -b .CVE-2010-0302
|
||||
|
||||
sed -i -e '1iMaxLogSize 0' conf/cupsd.conf.in
|
||||
|
||||
cp %{SOURCE5} cups-lpd.real
|
||||
@ -549,6 +480,8 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%config(noreplace) %doc %{_datadir}/%{name}/www/de/index.html
|
||||
%config(noreplace) %doc %{_datadir}/%{name}/www/es/index.html
|
||||
%config(noreplace) %doc %{_datadir}/%{name}/www/eu/index.html
|
||||
%config(noreplace) %doc %{_datadir}/%{name}/www/id/index.html
|
||||
%config(noreplace) %doc %{_datadir}/%{name}/www/it/index.html
|
||||
%config(noreplace) %doc %{_datadir}/%{name}/www/ja/index.html
|
||||
%config(noreplace) %doc %{_datadir}/%{name}/www/pl/index.html
|
||||
%config(noreplace) %doc %{_datadir}/%{name}/www/ru/index.html
|
||||
@ -584,6 +517,8 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%config(noreplace) %{_datadir}/cups/templates/de/*.tmpl
|
||||
%config(noreplace) %{_datadir}/cups/templates/es/*.tmpl
|
||||
%config(noreplace) %{_datadir}/cups/templates/eu/*.tmpl
|
||||
%config(noreplace) %{_datadir}/cups/templates/id/*.tmpl
|
||||
%config(noreplace) %{_datadir}/cups/templates/it/*.tmpl
|
||||
%config(noreplace) %{_datadir}/cups/templates/ja/*.tmpl
|
||||
%config(noreplace) %{_datadir}/cups/templates/pl/*.tmpl
|
||||
%config(noreplace) %{_datadir}/cups/templates/ru/*.tmpl
|
||||
@ -627,6 +562,14 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{php_extdir}/phpcups.so
|
||||
|
||||
%changelog
|
||||
* Wed Mar 31 2010 Jiri Popelka <jpopelka@redhat.com> 1:1.4.3-1
|
||||
- 1.4.3.
|
||||
- No longer need CVE-2009-3553, str3381, str3390, str3391,
|
||||
str3403, str3407, str3413, str3418, str3422, str3425,
|
||||
str3428, str3431, str3435, str3436, str3439, str3440,
|
||||
str3442, str3448, str3458, str3460, cups-sidechannel-intrs,
|
||||
negative-snmp-string-length, cups-media-empty-warning patches.
|
||||
|
||||
* Tue Mar 30 2010 Jiri Popelka <jpopelka@redhat.com> 1:1.4.2-36
|
||||
- Fixed lpstat to adhere to -o option (bug #577901, STR #3541).
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user