]> granicus.if.org Git - php/commitdiff
@socket_recvfrom is now binary safe (Jason)
authorJason Greene <jason@php.net>
Wed, 28 Aug 2002 06:15:13 +0000 (06:15 +0000)
committerJason Greene <jason@php.net>
Wed, 28 Aug 2002 06:15:13 +0000 (06:15 +0000)
Zero the structure so that when the tcp layer of the OS decides to ignore it,
we do not think we are getting a value

ext/sockets/sockets.c

index f1cca425abb1467e521014ace0a3b80956058a11..217e08024bb43bea8dde38c3c3fb0cd6c8fdc40e 100644 (file)
@@ -1392,12 +1392,13 @@ PHP_FUNCTION(socket_recvfrom)
                        zval_dtor(arg2);
                        zval_dtor(arg5);
 
-                       ZVAL_STRING(arg2, recv_buf, 0);
+                       ZVAL_STRINGL(arg2, recv_buf, retval, 0);
                        ZVAL_STRING(arg5, s_un.sun_path, 1);
                        break;
 
                case AF_INET:
                        slen = sizeof(sin);
+                       memset(&sin, 0, slen);
                        sin.sin_family = AF_INET;
                
                        if (arg6 == NULL) {
@@ -1418,7 +1419,7 @@ PHP_FUNCTION(socket_recvfrom)
 
                        address = inet_ntoa(sin.sin_addr);
 
-                       ZVAL_STRING(arg2, recv_buf, 0); 
+                       ZVAL_STRINGL(arg2, recv_buf, retval, 0); 
                        ZVAL_STRING(arg5, address ? address : "0.0.0.0", 1);
                        ZVAL_LONG(arg6, ntohs(sin.sin_port));
                        break;