From 93ea0dfe98576db65a89c93d26d65465b9277211 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Mon, 3 Mar 2014 18:14:59 +0800 Subject: [PATCH] Fixed fsockopen's reference argument handling --- ext/standard/fsock.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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); } -- 2.50.1