]> granicus.if.org Git - php/commitdiff
[p]fsockopen: fixed possible leak
authorThies C. Arntzen <thies@php.net>
Sun, 18 Feb 2001 18:54:41 +0000 (18:54 +0000)
committerThies C. Arntzen <thies@php.net>
Sun, 18 Feb 2001 18:54:41 +0000 (18:54 +0000)
ext/standard/fsock.c

index 6f46f5360883bc2c1d702bac52705c4847b2e305..298701c1c211ef76b8bf5965494c8d487d6812ad 100644 (file)
@@ -285,9 +285,11 @@ static void php_fsockopen(INTERNAL_FUNCTION_PARAMETERS, int persistent) {
                        CLOSE_SOCK(1);
 
                        if (arg_count>2) {
+                               zval_dtor(*args[2]);
                                ZVAL_LONG(*args[2],errno);
                        }
                        if (arg_count>3) {
+                               zval_dtor(*args[3]);
                                ZVAL_STRING(*args[3],strerror(errno),1);
                        }
                        RETURN_FALSE;
@@ -308,10 +310,12 @@ static void php_fsockopen(INTERNAL_FUNCTION_PARAMETERS, int persistent) {
 
                if (connect_nonb(socketd, (struct sockaddr *) &unix_addr, sizeof(unix_addr), &timeout) == SOCK_CONN_ERR) {
                        CLOSE_SOCK(1);
-                       if(arg_count>2) {
+                       if (arg_count>2) {
+                               zval_dtor(*args[2]);
                                ZVAL_LONG(*args[2],errno);
                        }
-                       if(arg_count>3) {
+                       if (arg_count>3) {
+                               zval_dtor(*args[3]);
                                ZVAL_STRING(*args[3],strerror(errno),1);
                        }
                        RETURN_FALSE;