]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Merge r1887727 from trunk:
authorEric Covener <covener@apache.org>
Wed, 21 Apr 2021 01:15:24 +0000 (01:15 +0000)
committerEric Covener <covener@apache.org>
Wed, 21 Apr 2021 01:15:24 +0000 (01:15 +0000)
* 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

modules/generators/mod_cgid.c

index 591758dadbbe516afe2bc840a3695b82ba8a2126..2258a683b75187e4851771d3431c605e85a057a9 100644 (file)
@@ -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;