diff options
-rw-r--r-- | ext/standard/fsock.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/ext/standard/fsock.c b/ext/standard/fsock.c index 7f8445e8de..3e658284f7 100644 --- a/ext/standard/fsock.c +++ b/ext/standard/fsock.c @@ -313,10 +313,13 @@ 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) (*args[2])->value.lval = errno; + if(arg_count>2) { + zval_dtor(*args[2]); + ZVAL_LONG(*args[2],errno); + } if(arg_count>3) { - (*args[3])->value.str.val = estrdup(strerror(errno)); - (*args[3])->value.str.len = strlen((*args[3])->value.str.val); + zval_dtor(*args[3]); + ZVAL_STRING(*args[3],strerror(errno),1); } RETURN_FALSE; } |