mirror of
https://github.com/php/php-src.git
synced 2024-11-27 20:03:40 +08:00
Fix bug #77849 Disable cloning of PDO handle/connection objects to avoid segfault
This commit is contained in:
parent
7b0ed8975d
commit
9ec1525eb5
4
NEWS
4
NEWS
@ -14,6 +14,10 @@ PHP NEWS
|
||||
. Fixed bug #77827 (preg_match does not ignore \r in regex flags). (requinix,
|
||||
cmb)
|
||||
|
||||
- PDO:
|
||||
. Fixed bug #77849 (Disable cloning of PDO handle/connection objects).
|
||||
(camporter)
|
||||
|
||||
- phpdbg:
|
||||
. Fixed bug #76801 (too many open files). (alekitto)
|
||||
. Fixed bug #77800 (phpdbg segfaults on listing some conditional breakpoints).
|
||||
|
@ -1403,6 +1403,7 @@ void pdo_dbh_init(void)
|
||||
pdo_dbh_object_handlers.offset = XtOffsetOf(pdo_dbh_object_t, std);
|
||||
pdo_dbh_object_handlers.dtor_obj = zend_objects_destroy_object;
|
||||
pdo_dbh_object_handlers.free_obj = pdo_dbh_free_storage;
|
||||
pdo_dbh_object_handlers.clone_obj = NULL;
|
||||
pdo_dbh_object_handlers.get_method = dbh_method_get;
|
||||
pdo_dbh_object_handlers.compare_objects = dbh_compare;
|
||||
pdo_dbh_object_handlers.get_gc = dbh_get_gc;
|
||||
|
23
ext/pdo/tests/bug_77849.phpt
Normal file
23
ext/pdo/tests/bug_77849.phpt
Normal file
@ -0,0 +1,23 @@
|
||||
--TEST--
|
||||
PDO Common: Bug #77849 (Unexpected segfault attempting to use cloned PDO object)
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!extension_loaded('pdo')) die('skip');
|
||||
$dir = getenv('REDIR_TEST_DIR');
|
||||
if (false == $dir) die('skip no driver');
|
||||
require_once $dir . 'pdo_test.inc';
|
||||
PDOTest::skip();
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
if (getenv('REDIR_TEST_DIR') === false) putenv('REDIR_TEST_DIR='.dirname(__FILE__) . '/../../pdo/tests/');
|
||||
require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
|
||||
|
||||
$db = PDOTest::factory();
|
||||
$db2 = clone $db;
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Uncaught Error: Trying to clone an uncloneable object of class PDO in %s
|
||||
Stack trace:
|
||||
#0 {main}
|
||||
thrown in %s on line %d
|
Loading…
Reference in New Issue
Block a user