diff options
Diffstat (limited to 'ext/pcre/tests/preg_replace_callback_fatal_error_leak.phpt')
-rw-r--r-- | ext/pcre/tests/preg_replace_callback_fatal_error_leak.phpt | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/ext/pcre/tests/preg_replace_callback_fatal_error_leak.phpt b/ext/pcre/tests/preg_replace_callback_fatal_error_leak.phpt new file mode 100644 index 0000000000..5ea3d4081e --- /dev/null +++ b/ext/pcre/tests/preg_replace_callback_fatal_error_leak.phpt @@ -0,0 +1,18 @@ +--TEST-- +preg_replace_callback() should not leak persistent memory on fatal error +--FILE-- +<?php + +function test() {} + +preg_replace_callback('/a/', function($matches) { + preg_replace_callback('/x/', function($matches) { + function test() {} // Trigger a fatal error. + return 'y'; + }, 'x'); + return 'b'; +}, 'a'); + +?> +--EXPECTF-- +Fatal error: Cannot redeclare test() (previously declared in %s on line %d |