cvs: php4 /ext/mysql php_mysql.c
| From: | Matt McClanahan | Date: | Thu, 26 Apr 2001 08:22:13 +0000 |
| Subject: | cvs: php4 /ext/mysql php_mysql.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-5287@lists.php.net to get a copy of this message | ||
cardinal Thu Apr 26 01:22:13 2001 EDT
Modified files:
/php4/ext/mysql php_mysql.c
Log:
Enforce the right number of params for mysql_fetch_*() functions, related to bug 9839.
Index: php4/ext/mysql/php_mysql.c
diff -u php4/ext/mysql/php_mysql.c:1.76 php4/ext/mysql/php_mysql.c:1.77
--- php4/ext/mysql/php_mysql.c:1.76 Tue Mar 13 14:52:53 2001
+++ php4/ext/mysql/php_mysql.c Thu Apr 26 01:22:12 2001
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_mysql.c,v 1.76 2001/03/13 22:52:53 zeev Exp $ */
+/* $Id: php_mysql.c,v 1.77 2001/04/26 08:22:12 cardinal Exp $ */
/* TODO:
@@ -1467,7 +1467,7 @@
/* }}} */
-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 @@
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 @@
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 @@
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 @@
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 @@
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);
}
/* }}} */