diff options
author | Matt McClanahan <cardinal@php.net> | 2001-04-26 08:22:12 +0000 |
---|---|---|
committer | Matt McClanahan <cardinal@php.net> | 2001-04-26 08:22:12 +0000 |
commit | cb9db291c79d19f5493ff8d6a75ccef7666318bb (patch) | |
tree | 9a13efad4144a1f49f86579ca8d104f2f954ef28 /ext/mysql | |
parent | 25ad8d38f39bb6ac3fdfeee48db1a6cdfb31a9de (diff) | |
download | php-git-cb9db291c79d19f5493ff8d6a75ccef7666318bb.tar.gz |
Enforce the right number of params for mysql_fetch_*() functions, related to bug 9839.
Diffstat (limited to 'ext/mysql')
-rw-r--r-- | ext/mysql/php_mysql.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/ext/mysql/php_mysql.c b/ext/mysql/php_mysql.c index df0b91d925..d49710ffb6 100644 --- a/ext/mysql/php_mysql.c +++ b/ext/mysql/php_mysql.c @@ -1467,7 +1467,7 @@ PHP_FUNCTION(mysql_num_fields) /* }}} */ -static void php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type) +static void php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type, int expected_args) { zval **result, **arg2; MYSQL_RES *mysql_result; @@ -1478,6 +1478,10 @@ static void php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type) int i; PLS_FETCH(); + if (ZEND_NUM_ARGS() > expected_args) { + WRONG_PARAM_COUNT; + } + switch (ZEND_NUM_ARGS()) { case 1: if (zend_get_parameters_ex(1, &result)==FAILURE) { @@ -1551,7 +1555,7 @@ static void php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type) Get a result row as an enumerated array */ PHP_FUNCTION(mysql_fetch_row) { - php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MYSQL_NUM); + php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MYSQL_NUM, 1); } /* }}} */ @@ -1560,7 +1564,7 @@ PHP_FUNCTION(mysql_fetch_row) Fetch a result row as an object */ PHP_FUNCTION(mysql_fetch_object) { - php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MYSQL_ASSOC); + php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MYSQL_ASSOC, 2); if (return_value->type==IS_ARRAY) { return_value->type=IS_OBJECT; return_value->value.obj.properties = return_value->value.ht; @@ -1574,7 +1578,7 @@ PHP_FUNCTION(mysql_fetch_object) Fetch a result row as an array (associative, numeric or both)*/ PHP_FUNCTION(mysql_fetch_array) { - php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0); + php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0, 2); } /* }}} */ @@ -1583,7 +1587,7 @@ PHP_FUNCTION(mysql_fetch_array) Fetch a result row as an associative array */ PHP_FUNCTION(mysql_fetch_assoc) { - php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MYSQL_ASSOC); + php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MYSQL_ASSOC, 1); } /* }}} */ |