From: Felipe Pena Date: Wed, 14 May 2008 12:28:28 +0000 (+0000) Subject: - Add check for avoid segfault when trying instantiate PDORow manually X-Git-Tag: BEFORE_HEAD_NS_CHANGE~1761 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8778ef1d21e27be4556767d14c03601f0c222ffa;p=php - Add check for avoid segfault when trying instantiate PDORow manually --- diff --git a/ext/pdo/pdo_stmt.c b/ext/pdo/pdo_stmt.c index 0730b40389..e6244522a1 100755 --- a/ext/pdo/pdo_stmt.c +++ b/ext/pdo/pdo_stmt.c @@ -2714,10 +2714,12 @@ zend_object_handlers pdo_row_object_handlers = { void pdo_row_free_storage(pdo_stmt_t *stmt TSRMLS_DC) { - ZVAL_NULL(&stmt->lazy_object_ref); - - if (--stmt->refcount == 0) { - free_statement(stmt TSRMLS_CC); + if (stmt) { + ZVAL_NULL(&stmt->lazy_object_ref); + + if (--stmt->refcount == 0) { + free_statement(stmt TSRMLS_CC); + } } } diff --git a/ext/pdo/tests/pdorow.phpt b/ext/pdo/tests/pdorow.phpt new file mode 100644 index 0000000000..b33dd155d8 --- /dev/null +++ b/ext/pdo/tests/pdorow.phpt @@ -0,0 +1,10 @@ +--TEST-- +Trying instantiate a PDORow object manually +--FILE-- + +--EXPECTF-- +Fatal error: PDORow::__construct(): You should not create a PDOStatement manually in %s on line %d