]> granicus.if.org Git - php/commitdiff
- Fixed stack buffer overflow in socket_connect().
authorFelipe Pena <felipe@php.net>
Tue, 24 May 2011 00:05:50 +0000 (00:05 +0000)
committerFelipe Pena <felipe@php.net>
Tue, 24 May 2011 00:05:50 +0000 (00:05 +0000)
  Found by: Mateusz Kocielski, Marek Kroemeke and Filip Palian

ext/sockets/sockets.c

index 0c6f292f3873948277a570c201dbec469de50b08..1651ca9db4982afa04fcac74844fb0a94b454808 100644 (file)
@@ -1540,6 +1540,11 @@ PHP_FUNCTION(socket_connect)
                        break;
 
                case AF_UNIX:
+                       if (addr_len >= sizeof(s_un.sun_path)) {
+                               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Path too long", php_sock->type);
+                               RETURN_FALSE;
+                       }
+                               
                        memset(&s_un, 0, sizeof(struct sockaddr_un));
 
                        s_un.sun_family = AF_UNIX;