]> git.kaiwu.me - nginx.git/commitdiff
Core: plugged socket leak during configuration test.
authorMaxim Dounin <mdounin@mdounin.ru>
Wed, 25 Jun 2014 23:34:05 +0000 (03:34 +0400)
committerMaxim Dounin <mdounin@mdounin.ru>
Wed, 25 Jun 2014 23:34:05 +0000 (03:34 +0400)
This isn't really important as configuration testing shortly ends with
a process termination which will free all sockets, though Coverity
complains.

Prodded by Coverity (CID 400872).

src/core/ngx_connection.c

index 6b6e3b3a512eb27bfb00b8eb893af66bd302c04e..4c42ffc0d275dd7aa7a4c1fc4d0644d79010eea7 100644 (file)
@@ -411,13 +411,11 @@ ngx_open_listening_sockets(ngx_cycle_t *cycle)
             if (bind(s, ls[i].sockaddr, ls[i].socklen) == -1) {
                 err = ngx_socket_errno;
 
-                if (err == NGX_EADDRINUSE && ngx_test_config) {
-                    continue;
+                if (err != NGX_EADDRINUSE || !ngx_test_config) {
+                    ngx_log_error(NGX_LOG_EMERG, log, err,
+                                  "bind() to %V failed", &ls[i].addr_text);
                 }
 
-                ngx_log_error(NGX_LOG_EMERG, log, err,
-                              "bind() to %V failed", &ls[i].addr_text);
-
                 if (ngx_close_socket(s) == -1) {
                     ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
                                   ngx_close_socket_n " %V failed",
@@ -428,7 +426,9 @@ ngx_open_listening_sockets(ngx_cycle_t *cycle)
                     return NGX_ERROR;
                 }
 
-                failed = 1;
+                if (!ngx_test_config) {
+                    failed = 1;
+                }
 
                 continue;
             }