From: Joe Orton Date: Tue, 16 Mar 2021 15:31:58 +0000 (+0000) Subject: * modules/generators/mod_cgid.c (cgid_server): Register cleanup for X-Git-Tag: 2.5.0-alpha2-ci-test-only~990 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f7e848dd2808956aea893c556ad778b2f079e41b;p=thirdparty%2Fapache%2Fhttpd.git * modules/generators/mod_cgid.c (cgid_server): Register cleanup for socket earlier to avoid possible leaks on error paths. (highlighted by Coverity scan) git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1887727 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/generators/mod_cgid.c b/modules/generators/mod_cgid.c index 1636ad41f14..08cdaccbf64 100644 --- a/modules/generators/mod_cgid.c +++ b/modules/generators/mod_cgid.c @@ -744,6 +744,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 */ @@ -778,9 +781,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;