From: Marcus Boerger Date: Thu, 26 May 2005 18:36:18 +0000 (+0000) Subject: - Need to make PDO::__construct() final to prevent SEGV it isn't called 1st X-Git-Tag: php-5.0.1b1~161 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9b3929a7e9d07ca63e702a6ea0ad1ac6f9f8a36e;p=php - Need to make PDO::__construct() final to prevent SEGV it isn't called 1st --- diff --git a/ext/pdo/pdo_dbh.c b/ext/pdo/pdo_dbh.c index 29b0a716cd..20579a1000 100755 --- a/ext/pdo/pdo_dbh.c +++ b/ext/pdo/pdo_dbh.c @@ -1075,6 +1075,7 @@ void pdo_dbh_init(TSRMLS_D) INIT_CLASS_ENTRY(ce, "PDO", pdo_dbh_functions); pdo_dbh_ce = zend_register_internal_class(&ce TSRMLS_CC); pdo_dbh_ce->create_object = pdo_dbh_new; + pdo_dbh_ce->constructor->common.fn_flags |= ZEND_ACC_FINAL; memcpy(&pdo_dbh_object_handlers, &std_object_handlers, sizeof(zend_object_handlers)); pdo_dbh_object_handlers.get_method = dbh_method_get; diff --git a/ext/pdo/tests/pdo_023_def.inc b/ext/pdo/tests/pdo_023_def.inc index 62a5d21313..1fb1980995 100755 --- a/ext/pdo/tests/pdo_023_def.inc +++ b/ext/pdo/tests/pdo_023_def.inc @@ -21,12 +21,6 @@ class PDODatabaseX extends PDO { public $test1 = 1; - function __construct($connect) - { - echo __METHOD__ . "()\n"; - parent::__construct($connect); - } - function __destruct() { echo __METHOD__ . "()\n"; diff --git a/ext/pdo/tests/pdo_026.inc b/ext/pdo/tests/pdo_026.inc index c5f2ce565b..b94ea17c3a 100755 --- a/ext/pdo/tests/pdo_026.inc +++ b/ext/pdo/tests/pdo_026.inc @@ -30,12 +30,6 @@ class PDOStatementX extends PDOStatement class PDODatabase extends PDO { - function __construct($connect) - { - echo __METHOD__ . "()\n"; - parent::__construct($connect); - } - function __destruct() { echo __METHOD__ . "()\n"; diff --git a/ext/pdo_mysql/tests/pdo_023.phpt b/ext/pdo_mysql/tests/pdo_023.phpt index 50db082a3b..ba43758a3e 100755 --- a/ext/pdo_mysql/tests/pdo_023.phpt +++ b/ext/pdo_mysql/tests/pdo_023.phpt @@ -22,7 +22,6 @@ require_once($PDO_TESTS . 'pdo_023.inc'); ===DONE=== --EXPECTF-- -PDODatabaseX::__construct() int(1) int(2) object(PDODatabaseX)#%d (2) { diff --git a/ext/pdo_mysql/tests/pdo_026.phpt b/ext/pdo_mysql/tests/pdo_026.phpt index e55b4578f9..7e061d8671 100755 --- a/ext/pdo_mysql/tests/pdo_026.phpt +++ b/ext/pdo_mysql/tests/pdo_026.phpt @@ -15,7 +15,6 @@ require_once($PDO_TESTS . 'pdo_026.inc'); ===DONE=== --EXPECT-- -PDODatabase::__construct() string(11) "PDODatabase" string(12) "PDOStatement" PDODatabase::query() diff --git a/ext/pdo_pgsql/tests/pdo_023.phpt b/ext/pdo_pgsql/tests/pdo_023.phpt index df6d8ed988..5aa86aa41a 100755 --- a/ext/pdo_pgsql/tests/pdo_023.phpt +++ b/ext/pdo_pgsql/tests/pdo_023.phpt @@ -22,7 +22,6 @@ require_once($PDO_TESTS . 'pdo_023.inc'); ===DONE=== --EXPECTF-- -PDODatabaseX::__construct() int(1) int(2) object(PDODatabaseX)#%d (2) { diff --git a/ext/pdo_pgsql/tests/pdo_026.phpt b/ext/pdo_pgsql/tests/pdo_026.phpt index 68aa14cf7d..12ac290c52 100755 --- a/ext/pdo_pgsql/tests/pdo_026.phpt +++ b/ext/pdo_pgsql/tests/pdo_026.phpt @@ -15,7 +15,6 @@ require_once($PDO_TESTS . 'pdo_026.inc'); ===DONE=== --EXPECT-- -PDODatabase::__construct() string(11) "PDODatabase" string(12) "PDOStatement" PDODatabase::query() diff --git a/ext/pdo_sqlite/tests/pdo_023.phpt b/ext/pdo_sqlite/tests/pdo_023.phpt index 2db35289cf..6baffe8065 100755 --- a/ext/pdo_sqlite/tests/pdo_023.phpt +++ b/ext/pdo_sqlite/tests/pdo_023.phpt @@ -22,7 +22,6 @@ require_once($PDO_TESTS . 'pdo_023.inc'); ===DONE=== --EXPECTF-- -PDODatabaseX::__construct() int(1) int(2) object(PDODatabaseX)#%d (2) { diff --git a/ext/pdo_sqlite/tests/pdo_026.phpt b/ext/pdo_sqlite/tests/pdo_026.phpt index 066648f453..cfeb0c26af 100755 --- a/ext/pdo_sqlite/tests/pdo_026.phpt +++ b/ext/pdo_sqlite/tests/pdo_026.phpt @@ -15,7 +15,6 @@ require_once($PDO_TESTS . 'pdo_026.inc'); ===DONE=== --EXPECT-- -PDODatabase::__construct() string(11) "PDODatabase" string(12) "PDOStatement" PDODatabase::query() diff --git a/ext/sqlite/tests/pdo/pdo_023.phpt b/ext/sqlite/tests/pdo/pdo_023.phpt index 1bdc853e8f..a987c6bd03 100755 --- a/ext/sqlite/tests/pdo/pdo_023.phpt +++ b/ext/sqlite/tests/pdo/pdo_023.phpt @@ -22,7 +22,6 @@ require_once($PDO_TESTS . 'pdo_023.inc'); ===DONE=== --EXPECTF-- -PDODatabaseX::__construct() int(1) int(2) object(PDODatabaseX)#%d (2) { diff --git a/ext/sqlite/tests/pdo/pdo_026.phpt b/ext/sqlite/tests/pdo/pdo_026.phpt index d9bc504c57..28d21bab2a 100755 --- a/ext/sqlite/tests/pdo/pdo_026.phpt +++ b/ext/sqlite/tests/pdo/pdo_026.phpt @@ -15,7 +15,6 @@ require_once($PDO_TESTS . 'pdo_026.inc'); ===DONE=== --EXPECT-- -PDODatabase::__construct() string(11) "PDODatabase" string(12) "PDOStatement" PDODatabase::query()