diff options
author | drochner <drochner> | 2010-06-16 18:18:26 +0000 |
---|---|---|
committer | drochner <drochner> | 2010-06-16 18:18:26 +0000 |
commit | 31c088deb34ee3ceab6640725ead3a9d4494a493 (patch) | |
tree | 4e55536c8df62713f1ddb143064ae26e90a7dccf /print/cups/patches/patch-ba | |
parent | d4a7d3426a39562f3fd4715a04fb94b63c7cf84f (diff) | |
download | pkgsrc-31c088deb34ee3ceab6640725ead3a9d4494a493.tar.gz |
add some patches from upstream to fix security problems:
-use-after-free problem (CVE-2010-0302)
-information disclosure (CVE-2010-1748)
-unchecked memory allocation is texttops
-file overwrite problem
(I didn't find references from cups patches to CVE #s, or vice versa,
so the CVE #s are not certain.)
The missing http session check problem (CVE-2010-0540?) is not fixed,
this would be a large patch affecting tens of files.
bump PKGREVISION
Diffstat (limited to 'print/cups/patches/patch-ba')
-rw-r--r-- | print/cups/patches/patch-ba | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/print/cups/patches/patch-ba b/print/cups/patches/patch-ba new file mode 100644 index 00000000000..69b177615dd --- /dev/null +++ b/print/cups/patches/patch-ba @@ -0,0 +1,24 @@ +$NetBSD: patch-ba,v 1.3 2010/06/16 18:18:26 drochner Exp $ + +--- scheduler/select.c.orig 2010-01-14 22:40:19.000000000 +0000 ++++ scheduler/select.c +@@ -454,7 +454,8 @@ cupsdDoSelect(long timeout) /* I - Time + 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 - Time + (*(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); |