diff options
author | Ulf Wendel <uw@php.net> | 2009-09-30 14:39:33 +0000 |
---|---|---|
committer | Ulf Wendel <uw@php.net> | 2009-09-30 14:39:33 +0000 |
commit | d79cba2afdb41ae2e9634782adbf2a48d56941d6 (patch) | |
tree | c94220600cd95412cd789f360c36b1b8f5e2c9a1 /ext/mysql/php_mysql.c | |
parent | 59dc338ac243e4f1d1cc7929a588bb2e85d79006 (diff) | |
download | php-git-d79cba2afdb41ae2e9634782adbf2a48d56941d6.tar.gz |
Fixing a leak in mysqlnd when passing invalid fetch modes to mysqlnd.
Diffstat (limited to 'ext/mysql/php_mysql.c')
-rw-r--r-- | ext/mysql/php_mysql.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/ext/mysql/php_mysql.c b/ext/mysql/php_mysql.c index f8780017db..7b84b2418a 100644 --- a/ext/mysql/php_mysql.c +++ b/ext/mysql/php_mysql.c @@ -2012,7 +2012,7 @@ static void php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type, } } - if ((result_type & MYSQL_BOTH) == 0) { + if (result_type & ~MYSQL_BOTH) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "The result type should be either MYSQL_NUM, MYSQL_ASSOC or MYSQL_BOTH"); result_type = MYSQL_BOTH; } @@ -2200,6 +2200,11 @@ PHP_FUNCTION(mysql_fetch_array) } ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "MySQL result", le_result); + if (mode & ~MYSQL_BOTH) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "The result type should be either MYSQL_NUM, MYSQL_ASSOC or MYSQL_BOTH"); + mode = MYSQL_BOTH; + } + mysqlnd_fetch_into(result, mode, return_value, MYSQLND_MYSQL); #endif } |