From: Joe Orton Date: Wed, 18 May 2005 08:03:37 +0000 (+0000) Subject: * server/log.c (piped_log_spawn): Don't leak an fd for each X-Git-Tag: 2.1.5~98 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4741d91295d1e0c45ce1b03d4faab23a529c78f1;p=thirdparty%2Fapache%2Fhttpd.git * server/log.c (piped_log_spawn): Don't leak an fd for each invocation. Reviewed by: Jeff Trawick git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@170719 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/server/log.c b/server/log.c index b2d44925826..d8f4fd98117 100644 --- a/server/log.c +++ b/server/log.c @@ -820,7 +820,11 @@ static apr_status_t piped_log_spawn(piped_log *pl) if (status == APR_SUCCESS) { pl->pid = procnew; - ap_piped_log_write_fd(pl) = procnew->in; + /* procnew->in was dup2'd from ap_piped_log_write_fd(pl); + * since the original fd is still valid, close the copy to + * avoid a leak. */ + apr_file_close(procnew->in); + procnew->in = NULL; apr_proc_other_child_register(procnew, piped_log_maintenance, pl, ap_piped_log_write_fd(pl), pl->p); close_handle_in_child(pl->p, ap_piped_log_read_fd(pl));