felipe Wed, 16 Jun 2010 23:13:29 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=300503
Log: - Fix crash when calling a method of a class that inherits PDOStatement if instantiated directly Changed paths: U php/php-src/branches/PHP_5_2/ext/pdo/pdo_stmt.c U php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c U php/php-src/trunk/ext/pdo/pdo_stmt.c Modified: php/php-src/branches/PHP_5_2/ext/pdo/pdo_stmt.c =================================================================== --- php/php-src/branches/PHP_5_2/ext/pdo/pdo_stmt.c 2010-06-16 19:01:13 UTC (rev 300502) +++ php/php-src/branches/PHP_5_2/ext/pdo/pdo_stmt.c 2010-06-16 23:13:29 UTC (rev 300503) @@ -2289,6 +2289,10 @@ if (zend_hash_find(&Z_OBJCE_P(object)->function_table, lc_method_name, method_len+1, (void**)&fbc) == FAILURE) { pdo_stmt_t *stmt = (pdo_stmt_t*)zend_object_store_get_object(object TSRMLS_CC); + /* instance not created by PDO object */ + if (!stmt->dbh) { + goto out; + } /* not a pre-defined method, nor a user-defined method; check * the driver specific methods */ if (!stmt->dbh->cls_methods[PDO_DBH_DRIVER_METHOD_KIND_STMT]) { Modified: php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c 2010-06-16 19:01:13 UTC (rev 300502) +++ php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c 2010-06-16 23:13:29 UTC (rev 300503) @@ -2282,6 +2282,10 @@ if (zend_hash_find(&Z_OBJCE_P(object)->function_table, lc_method_name, method_len+1, (void**)&fbc) == FAILURE) { pdo_stmt_t *stmt = (pdo_stmt_t*)zend_object_store_get_object(object TSRMLS_CC); + /* instance not created by PDO object */ + if (!stmt->dbh) { + goto out; + } /* not a pre-defined method, nor a user-defined method; check * the driver specific methods */ if (!stmt->dbh->cls_methods[PDO_DBH_DRIVER_METHOD_KIND_STMT]) { Modified: php/php-src/trunk/ext/pdo/pdo_stmt.c =================================================================== --- php/php-src/trunk/ext/pdo/pdo_stmt.c 2010-06-16 19:01:13 UTC (rev 300502) +++ php/php-src/trunk/ext/pdo/pdo_stmt.c 2010-06-16 23:13:29 UTC (rev 300503) @@ -2282,6 +2282,10 @@ if (zend_hash_find(&Z_OBJCE_P(object)->function_table, lc_method_name, method_len+1, (void**)&fbc) == FAILURE) { pdo_stmt_t *stmt = (pdo_stmt_t*)zend_object_store_get_object(object TSRMLS_CC); + /* instance not created by PDO object */ + if (!stmt->dbh) { + goto out; + } /* not a pre-defined method, nor a user-defined method; check * the driver specific methods */ if (!stmt->dbh->cls_methods[PDO_DBH_DRIVER_METHOD_KIND_STMT]) {
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php