Index: scheduler/dirsvc.c =================================================================== --- scheduler/dirsvc.c (revision 8790) +++ scheduler/dirsvc.c (working copy) @@ -1558,9 +1558,12 @@ * Add the master connection to the select list... */ - cupsdAddSelect(DNSServiceRefSockFD(DNSSDRef), - (cupsd_selfunc_t)dnssdUpdate, NULL, NULL); + int fd = DNSServiceRefSockFD(DNSSDRef); + fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC); + + cupsdAddSelect(fd, (cupsd_selfunc_t)dnssdUpdate, NULL, NULL); + /* * Then get the port we use for registrations. If we are not listening * on any non-local ports, there is no sense sharing local printers via Index: scheduler/job.c =================================================================== --- scheduler/job.c (revision 8790) +++ scheduler/job.c (working copy) @@ -3863,6 +3863,11 @@ fcntl(job->side_pipes[1], F_SETFL, fcntl(job->side_pipes[1], F_GETFL) | O_NONBLOCK); + fcntl(job->side_pipes[0], F_SETFD, + fcntl(job->side_pipes[0], F_GETFD) | FD_CLOEXEC); + fcntl(job->side_pipes[1], F_SETFD, + fcntl(job->side_pipes[1], F_GETFD) | FD_CLOEXEC); + /* * Now start the first file in the job... */