andrey                                   Thu, 27 May 2010 12:44:10 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=299849

Log:
Check before use, because mysqlnd can return NULL
and this will crash. However, this can happen only in case of OOM.

Changed paths:
    U   php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_api.c
    U   php/php-src/trunk/ext/mysqli/mysqli_api.c

Modified: php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_api.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_api.c        2010-05-27 
12:39:12 UTC (rev 299848)
+++ php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_api.c        2010-05-27 
12:44:10 UTC (rev 299849)
@@ -453,10 +453,13 @@
 {
        unsigned int i;
        MYSQLND_RESULT_BIND * params = 
mysqlnd_stmt_alloc_result_bind(stmt->stmt);
-       for (i = 0; i < (argc - start); i++) {
-               params[i].zv = *(args[i + start]);
+       if (params) {
+               for (i = 0; i < (argc - start); i++) {
+                       params[i].zv = *(args[i + start]);
+               }
+               return mysqlnd_stmt_bind_result(stmt->stmt, params);
        }
-       return mysqlnd_stmt_bind_result(stmt->stmt, params);
+       return FAIL;
 }
 #endif
 /* }}} */

Modified: php/php-src/trunk/ext/mysqli/mysqli_api.c
===================================================================
--- php/php-src/trunk/ext/mysqli/mysqli_api.c   2010-05-27 12:39:12 UTC (rev 
299848)
+++ php/php-src/trunk/ext/mysqli/mysqli_api.c   2010-05-27 12:44:10 UTC (rev 
299849)
@@ -453,10 +453,13 @@
 {
        unsigned int i;
        MYSQLND_RESULT_BIND * params = 
mysqlnd_stmt_alloc_result_bind(stmt->stmt);
-       for (i = 0; i < (argc - start); i++) {
-               params[i].zv = *(args[i + start]);
+       if (params) {
+               for (i = 0; i < (argc - start); i++) {
+                       params[i].zv = *(args[i + start]);
+               }
+               return mysqlnd_stmt_bind_result(stmt->stmt, params);
        }
-       return mysqlnd_stmt_bind_result(stmt->stmt, params);
+       return FAIL;
 }
 #endif
 /* }}} */

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to