From: Eric Covener Date: Wed, 21 Apr 2021 01:15:24 +0000 (+0000) Subject: Merge r1887727 from trunk: X-Git-Tag: 2.4.47~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8bfc7e0c358fcd6e0027b82106ff034abc13a920;p=thirdparty%2Fapache%2Fhttpd.git Merge r1887727 from trunk: * modules/generators/mod_cgid.c (cgid_server): Register cleanup for socket earlier to avoid possible leaks on error paths. (highlighted by Coverity scan) Reviewed By: ylavic, icing, covener git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1889041 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/generators/mod_cgid.c b/modules/generators/mod_cgid.c index 591758dadbb..2258a683b75 100644 --- a/modules/generators/mod_cgid.c +++ b/modules/generators/mod_cgid.c @@ -627,6 +627,9 @@ static int cgid_server(void *data) return errno; } + apr_pool_cleanup_register(pcgi, (void *)((long)sd), + close_unix_socket, close_unix_socket); + omask = umask(0077); /* so that only Apache can use socket */ rc = bind(sd, (struct sockaddr *)server_addr, server_addr_len); umask(omask); /* can't fail, so can't clobber errno */ @@ -661,9 +664,6 @@ static int cgid_server(void *data) } } - apr_pool_cleanup_register(pcgi, (void *)((long)sd), - close_unix_socket, close_unix_socket); - /* if running as root, switch to configured user/group */ if ((rc = ap_run_drop_privileges(pcgi, ap_server_conf)) != 0) { return rc;