diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/standard/fsock.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/ext/standard/fsock.c b/ext/standard/fsock.c index 6f46f53608..298701c1c2 100644 --- a/ext/standard/fsock.c +++ b/ext/standard/fsock.c @@ -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; |