]> git.kaiwu.me - nginx.git/commitdiff
Core: fixed possible use of an uninitialized variable.
authorVladimir Homutov <vl@nginx.com>
Thu, 11 Jul 2013 15:50:19 +0000 (19:50 +0400)
committerVladimir Homutov <vl@nginx.com>
Thu, 11 Jul 2013 15:50:19 +0000 (19:50 +0400)
The call to ngx_sock_ntop() in ngx_connection_local_sockaddr() might be
performed with the uninitialized "len" variable.  The fix is to initialize
variable to the size of corresponding socket address type.

The issue was introduced in commit 05ba5bce31e0.

src/core/ngx_connection.c

index 553a938f6590a44536621c0f4a4cfbe8d62bf6f9..827be88dba6c8860bedd4c519f2e54e4b83b0161 100644 (file)
@@ -1034,6 +1034,7 @@ ngx_connection_local_sockaddr(ngx_connection_t *c, ngx_str_t *s,
 #if (NGX_HAVE_INET6)
     case AF_INET6:
         sin6 = (struct sockaddr_in6 *) c->local_sockaddr;
+        len = sizeof(struct sockaddr_in6);
 
         for (addr = 0, i = 0; addr == 0 && i < 16; i++) {
             addr |= sin6->sin6_addr.s6_addr[i];
@@ -1044,6 +1045,7 @@ ngx_connection_local_sockaddr(ngx_connection_t *c, ngx_str_t *s,
 
     default: /* AF_INET */
         sin = (struct sockaddr_in *) c->local_sockaddr;
+        len = sizeof(struct sockaddr_in);
         addr = sin->sin_addr.s_addr;
         break;
     }