From: Xinchen Hui Date: Mon, 3 Mar 2014 10:14:59 +0000 (+0800) Subject: Fixed fsockopen's reference argument handling X-Git-Tag: POST_PHPNG_MERGE~412^2~436^2~5 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=93ea0dfe98576db65a89c93d26d65465b9277211;p=php Fixed fsockopen's reference argument handling --- diff --git a/ext/standard/fsock.c b/ext/standard/fsock.c index d1446555a5..0774893e85 100644 --- a/ext/standard/fsock.c +++ b/ext/standard/fsock.c @@ -68,10 +68,12 @@ static void php_fsockopen_stream(INTERNAL_FUNCTION_PARAMETERS, int persistent) tv.tv_usec = conv % 1000000; if (zerrno) { + zerrno = Z_REFVAL_P(zerrno); zval_dtor(zerrno); ZVAL_LONG(zerrno, 0); } if (zerrstr) { + zerrstr = Z_REFVAL_P(zerrstr); zval_dtor(zerrstr); ZVAL_EMPTY_STRING(zerrstr); } @@ -100,8 +102,8 @@ static void php_fsockopen_stream(INTERNAL_FUNCTION_PARAMETERS, int persistent) zval_dtor(zerrstr); //??? ZVAL_STRING(zerrstr, errstr, 0); ZVAL_STRING(zerrstr, errstr); - } - else if (!zerrstr && errstr) { + efree(errstr); + } else if (!zerrstr && errstr) { efree(errstr); }