Commit:    8dec06ea2afbe577191b13152e8f4622a80aeb0c
Author:    Anatol Belski <a...@php.net>         Thu, 16 May 2013 19:23:31 +0200
Parents:   d82704b6779cf54e9c8bd16ecc78c612892b4c9d
Branches:  PHP-5.4 PHP-5.5 master

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=8dec06ea2afbe577191b13152e8f4622a80aeb0c

Log:
Fixed error handling for ext/sockets under win

WSAGetLastError() must be the very next call after a socket
function had an invalid return. Any function call inbetween
will clear the error information.

Changed paths:
  M  ext/sockets/sockets.c


Diff:
diff --git a/ext/sockets/sockets.c b/ext/sockets/sockets.c
index 06bd0ec..b3bcbf2 100644
--- a/ext/sockets/sockets.c
+++ b/ext/sockets/sockets.c
@@ -1822,8 +1822,8 @@ PHP_FUNCTION(socket_recvfrom)
                        retval = recvfrom(php_sock->bsd_socket, recv_buf, arg3, 
arg4, (struct sockaddr *)&s_un, (socklen_t *)&slen);
 
                        if (retval < 0) {
-                               efree(recv_buf);
                                PHP_SOCKET_ERROR(php_sock, "unable to 
recvfrom", errno);
+                               efree(recv_buf);
                                RETURN_FALSE;
                        }
 
@@ -1847,8 +1847,8 @@ PHP_FUNCTION(socket_recvfrom)
                        retval = recvfrom(php_sock->bsd_socket, recv_buf, arg3, 
arg4, (struct sockaddr *)&sin, (socklen_t *)&slen);
 
                        if (retval < 0) {
-                               efree(recv_buf);
                                PHP_SOCKET_ERROR(php_sock, "unable to 
recvfrom", errno);
+                               efree(recv_buf);
                                RETURN_FALSE;
                        }
 
@@ -1876,8 +1876,8 @@ PHP_FUNCTION(socket_recvfrom)
                        retval = recvfrom(php_sock->bsd_socket, recv_buf, arg3, 
arg4, (struct sockaddr *)&sin6, (socklen_t *)&slen);
 
                        if (retval < 0) {
-                               efree(recv_buf);
                                PHP_SOCKET_ERROR(php_sock, "unable to 
recvfrom", errno);
+                               efree(recv_buf);
                                RETURN_FALSE;
                        }


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to