From b3a19983862d0040d434a056cf69dc2be65756a9 Mon Sep 17 00:00:00 2001 From: Jason Greene Date: Wed, 28 Aug 2002 06:15:13 +0000 Subject: [PATCH] @socket_recvfrom is now binary safe (Jason) 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 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ext/sockets/sockets.c b/ext/sockets/sockets.c index f1cca425ab..217e08024b 100644 --- a/ext/sockets/sockets.c +++ b/ext/sockets/sockets.c @@ -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; -- 2.40.0