From fdae6875eac570a506ad0899d7a709177c2db2e5 Mon Sep 17 00:00:00 2001 From: Antony Dovgal Date: Tue, 6 Mar 2007 19:59:13 +0000 Subject: fix segfault in import_request_variables() and its test I'm not completely sure it's correct to import numeric vars like _POST["1"] etc. --- ext/standard/basic_functions.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'ext/standard/basic_functions.c') diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 36b84f9d7e..582cf38cb6 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -6363,9 +6363,15 @@ PHP_FUNCTION(import_request_variables) return; } - convert_to_text(prefix); - if (Z_UNILEN_P(prefix) == 0) { - php_error_docref(NULL TSRMLS_CC, E_NOTICE, "No prefix specified - possible security hazard"); + if (ZEND_NUM_ARGS() > 1) { + convert_to_text(prefix); + + if (Z_UNILEN_P(prefix) == 0) { + php_error_docref(NULL TSRMLS_CC, E_NOTICE, "No prefix specified - possible security hazard"); + } + } else { + MAKE_STD_ZVAL(prefix); + ZVAL_EMPTY_TEXT(prefix); } for (p = types; p && *p; p++) { @@ -6388,6 +6394,10 @@ PHP_FUNCTION(import_request_variables) break; } } + + if (ZEND_NUM_ARGS() < 2) { + zval_ptr_dtor(&prefix); + } } /* }}} */ -- cgit v1.2.1