summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimo Gurr <tgurr@gentoo.org>2009-11-30 22:00:56 +0000
committerTimo Gurr <tgurr@gentoo.org>2009-11-30 22:00:56 +0000
commitc1a1fad2ab3e62a6d75b6a812a60260ba2a29cff (patch)
treed49e2a97281edb02bff8ee8998626f49192e7b0a /net-print/cups/files
parentversion bump (diff)
downloadgentoo-2-c1a1fad2ab3e62a6d75b6a812a60260ba2a29cff.tar.gz
gentoo-2-c1a1fad2ab3e62a6d75b6a812a60260ba2a29cff.tar.bz2
gentoo-2-c1a1fad2ab3e62a6d75b6a812a60260ba2a29cff.zip
Revbumps fixing security issue CVE-2009-3553. Fix linguas handling bug #293217 thanks to Rafał Mużyło, remove zeroconf of cups 1.4 since it's missing an avahi implementation, bug #293295. Remove old.
(Portage version: 2.2_rc54/cvs/Linux x86_64)
Diffstat (limited to 'net-print/cups/files')
-rw-r--r--net-print/cups/files/cups-1.3.11-str3200.patch39
-rw-r--r--net-print/cups/files/cups-1.4.2-str3200.patch43
2 files changed, 82 insertions, 0 deletions
diff --git a/net-print/cups/files/cups-1.3.11-str3200.patch b/net-print/cups/files/cups-1.3.11-str3200.patch
new file mode 100644
index 000000000000..84cdbd26299f
--- /dev/null
+++ b/net-print/cups/files/cups-1.3.11-str3200.patch
@@ -0,0 +1,39 @@
+diff -up cups-1.3.7/scheduler/select.c.CVE-2009-3553 cups-1.3.7/scheduler/select.c
+--- cups-1.3.7/scheduler/select.c.CVE-2009-3553 2007-11-30 19:29:50.000000000 +0000
++++ cups-1.3.7/scheduler/select.c 2009-11-11 16:36:07.223893886 +0000
+@@ -477,7 +477,7 @@ cupsdDoSelect(long timeout) /* I - Time
+ (*(fdptr->read_cb))(fdptr->data);
+ }
+
+- if (fdptr->write_cb && event->filter == EVFILT_WRITE)
++ if (fdptr->use > 1 && fdptr->write_cb && event->filter == EVFILT_WRITE)
+ {
+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdDoSelect: Write on fd %d...",
+ fdptr->fd);
+@@ -537,7 +537,7 @@ cupsdDoSelect(long timeout) /* I - Time
+ (*(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)))
+ {
+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdDoSelect: Write on fd %d...",
+ fdptr->fd);
+@@ -649,7 +649,7 @@ cupsdDoSelect(long timeout) /* I - Time
+ (*(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)))
+ {
+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdDoSelect: Write on fd %d...",
+ fdptr->fd);
+@@ -719,7 +719,7 @@ cupsdDoSelect(long timeout) /* I - Time
+ (*(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))
+ {
+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdDoSelect: Write on fd %d...",
+ fdptr->fd);
diff --git a/net-print/cups/files/cups-1.4.2-str3200.patch b/net-print/cups/files/cups-1.4.2-str3200.patch
new file mode 100644
index 000000000000..47d9114ed131
--- /dev/null
+++ b/net-print/cups/files/cups-1.4.2-str3200.patch
@@ -0,0 +1,43 @@
+Index: scheduler/select.c
+===================================================================
+--- scheduler/select.c (revision 8887)
++++ scheduler/select.c (working copy)
+@@ -454,7 +454,7 @@
+ 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,8 @@
+ 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 +591,8 @@
+ 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 +647,8 @@
+ 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);