aboutsummaryrefslogtreecommitdiffstats
path: root/print
diff options
context:
space:
mode:
authordinoex <dinoex@FreeBSD.org>2010-06-19 12:09:32 +0800
committerdinoex <dinoex@FreeBSD.org>2010-06-19 12:09:32 +0800
commit5a6f2f9682587caee32107e07d0b3907a94ba47b (patch)
treefd2ee7e36c5beffb45d389591b55637030664226 /print
parent4098994291297a51cd1e5aee696c42bab9e1168f (diff)
downloadfreebsd-ports-gnome-5a6f2f9682587caee32107e07d0b3907a94ba47b.tar.gz
freebsd-ports-gnome-5a6f2f9682587caee32107e07d0b3907a94ba47b.tar.zst
freebsd-ports-gnome-5a6f2f9682587caee32107e07d0b3907a94ba47b.zip
- Security update to 1.4.4
- Security fix for deny of service vulnerability Security: CVE-2009-3553 Security: CVE-2010-0302 PR: 147978 Approved by: portmgr (erwin) Feature safe: yes
Diffstat (limited to 'print')
-rw-r--r--print/cups-base/Makefile1
-rw-r--r--print/cups-base/files/patch-CVE-2009-355336
2 files changed, 37 insertions, 0 deletions
diff --git a/print/cups-base/Makefile b/print/cups-base/Makefile
index c1959f1335e4..1940a6f65121 100644
--- a/print/cups-base/Makefile
+++ b/print/cups-base/Makefile
@@ -89,6 +89,7 @@ USE_LDCONFIG= yes
PKGMESSAGE= ${NONEXISTENT}
DESCR= ${MASTERDIR}/pkg-descr.image
.else
+PORTREVISION= 1
CONFLICTS+= cupsddk-*
CUPS_SUFFIX= -base
LIB_DEPENDS+= cups.2:${PORTSDIR}/${PKGCATEGORY}/cups-client \
diff --git a/print/cups-base/files/patch-CVE-2009-3553 b/print/cups-base/files/patch-CVE-2009-3553
new file mode 100644
index 000000000000..34c698734be7
--- /dev/null
+++ b/print/cups-base/files/patch-CVE-2009-3553
@@ -0,0 +1,36 @@
+From b6b656f4b431574069d5b17dc6d3d44910269bb9 Mon Sep 17 00:00:00 2001
+From: Tim Waugh <twaugh@redhat.com>
+Date: Wed, 3 Feb 2010 16:07:11 +0000
+Subject: [PATCH] More complete fix for CVE-2009-3553.
+
+---
+ scheduler/select.c | 6 ++++--
+ 1 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/scheduler/select.c b/scheduler/select.c
+index 21a6edc..a2451a5 100644
+--- scheduler/select.c
++++ scheduler/select.c
+@@ -454,7 +454,8 @@ cupsdDoSelect(long timeout) /* I - Timeout in seconds */
+ if (fdptr->read_cb && event->filter == EVFILT_READ)
+ (*(fdptr->read_cb))(fdptr->data);
+
+- if (fdptr->use > 1 && fdptr->write_cb && event->filter == EVFILT_WRITE)
++ if (fdptr->use > 1 && fdptr->write_cb && event->filter == EVFILT_WRITE &&
++ !cupsArrayFind(cupsd_inactive_fds, fdptr))
+ (*(fdptr->write_cb))(fdptr->data);
+
+ release_fd(fdptr);
+@@ -500,7 +501,8 @@ cupsdDoSelect(long timeout) /* I - Timeout in seconds */
+ (*(fdptr->read_cb))(fdptr->data);
+
+ 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);
+
+ release_fd(fdptr);
+--
+1.6.6
+