mirror of
https://github.com/php/php-src.git
synced 2024-09-22 10:27:25 +00:00
Enforce the right number of params for mysql_fetch_*() functions, related to bug 9839.
This commit is contained in:
parent
25ad8d38f3
commit
cb9db291c7
@ -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);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user