summaryrefslogtreecommitdiff
path: root/ext/mysql
diff options
context:
space:
mode:
authorMatt McClanahan <cardinal@php.net>2001-04-26 08:22:12 +0000
committerMatt McClanahan <cardinal@php.net>2001-04-26 08:22:12 +0000
commitcb9db291c79d19f5493ff8d6a75ccef7666318bb (patch)
tree9a13efad4144a1f49f86579ca8d104f2f954ef28 /ext/mysql
parent25ad8d38f39bb6ac3fdfeee48db1a6cdfb31a9de (diff)
downloadphp-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.c14
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);
}
/* }}} */