diff -up cups-1.3.7/scheduler/select.c.CVE-2009-3553-incomplete-fix cups-1.3.7/scheduler/select.c --- cups-1.3.7/scheduler/select.c.CVE-2009-3553-incomplete-fix 2010-01-22 14:38:23.826057584 +0000 +++ cups-1.3.7/scheduler/select.c 2010-01-22 14:40:19.058932589 +0000 @@ -477,7 +477,8 @@ cupsdDoSelect(long timeout) /* I - Time (*(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)) { cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdDoSelect: Write on fd %d...", fdptr->fd); @@ -537,7 +538,9 @@ 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 && + (event->events & (EPOLLOUT | EPOLLERR | EPOLLHUP)) && + !cupsArrayFind(cupsd_inactive_fds, fdptr)) { cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdDoSelect: Write on fd %d...", fdptr->fd);