mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
simple ignore arguments in exceptions implementation
This commit is contained in:
parent
b546ae986a
commit
0819e6dc9b
7 changed files with 40 additions and 1 deletions
|
@ -661,6 +661,10 @@ The following extensions and SAPIs are affected:
|
||||||
14. Other Changes
|
14. Other Changes
|
||||||
========================================
|
========================================
|
||||||
|
|
||||||
|
- Core:
|
||||||
|
. Add zend.exception_ignore_args to force the omission of arguments from
|
||||||
|
stack traces collected for exceptions.
|
||||||
|
|
||||||
========================================
|
========================================
|
||||||
15. Performance Improvements
|
15. Performance Improvements
|
||||||
========================================
|
========================================
|
||||||
|
|
18
Zend/tests/exception_ignore_args.phpt
Normal file
18
Zend/tests/exception_ignore_args.phpt
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
--TEST--
|
||||||
|
Exceptions ignoring arguments
|
||||||
|
--FILE--
|
||||||
|
<?php
|
||||||
|
$function = function(string $user, string $pass) {
|
||||||
|
throw new Exception();
|
||||||
|
};
|
||||||
|
|
||||||
|
ini_set("zend.exception_ignore_args", 1);
|
||||||
|
|
||||||
|
$function("secrets", "arewrong");
|
||||||
|
?>
|
||||||
|
--EXPECTF--
|
||||||
|
Fatal error: Uncaught Exception in %sexception_ignore_args.php:3
|
||||||
|
Stack trace:
|
||||||
|
#0 %sexception_ignore_args.php(8): {closure}()
|
||||||
|
#1 {main}
|
||||||
|
thrown in %sexception_ignore_args.php on line 3
|
|
@ -174,6 +174,7 @@ ZEND_INI_BEGIN()
|
||||||
#ifdef ZEND_SIGNALS
|
#ifdef ZEND_SIGNALS
|
||||||
STD_ZEND_INI_BOOLEAN("zend.signal_check", "0", ZEND_INI_SYSTEM, OnUpdateBool, check, zend_signal_globals_t, zend_signal_globals)
|
STD_ZEND_INI_BOOLEAN("zend.signal_check", "0", ZEND_INI_SYSTEM, OnUpdateBool, check, zend_signal_globals_t, zend_signal_globals)
|
||||||
#endif
|
#endif
|
||||||
|
STD_ZEND_INI_BOOLEAN("zend.exception_ignore_args", "0", ZEND_INI_ALL, OnUpdateBool, exception_ignore_args, zend_executor_globals, executor_globals)
|
||||||
ZEND_INI_END()
|
ZEND_INI_END()
|
||||||
|
|
||||||
ZEND_API size_t zend_vspprintf(char **pbuf, size_t max_len, const char *format, va_list ap) /* {{{ */
|
ZEND_API size_t zend_vspprintf(char **pbuf, size_t max_len, const char *format, va_list ap) /* {{{ */
|
||||||
|
|
|
@ -212,7 +212,9 @@ static zend_object *zend_default_exception_new_ex(zend_class_entry *class_type,
|
||||||
object_properties_init(object, class_type);
|
object_properties_init(object, class_type);
|
||||||
|
|
||||||
if (EG(current_execute_data)) {
|
if (EG(current_execute_data)) {
|
||||||
zend_fetch_debug_backtrace(&trace, skip_top_traces, 0, 0);
|
zend_fetch_debug_backtrace(&trace,
|
||||||
|
skip_top_traces,
|
||||||
|
EG(exception_ignore_args) ? DEBUG_BACKTRACE_IGNORE_ARGS : 0, 0);
|
||||||
} else {
|
} else {
|
||||||
array_init(&trace);
|
array_init(&trace);
|
||||||
}
|
}
|
||||||
|
|
|
@ -236,6 +236,8 @@ struct _zend_executor_globals {
|
||||||
|
|
||||||
HashTable weakrefs;
|
HashTable weakrefs;
|
||||||
|
|
||||||
|
zend_bool exception_ignore_args;
|
||||||
|
|
||||||
void *reserved[ZEND_MAX_RESERVED_RESOURCES];
|
void *reserved[ZEND_MAX_RESERVED_RESOURCES];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -354,6 +354,10 @@ zend.enable_gc = On
|
||||||
; Default: ""
|
; Default: ""
|
||||||
;zend.script_encoding =
|
;zend.script_encoding =
|
||||||
|
|
||||||
|
; Allows to include or exclude arguments from stack traces generated for exceptions
|
||||||
|
; Default: Off
|
||||||
|
zend.exception_ignore_args = Off
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;
|
||||||
; Miscellaneous ;
|
; Miscellaneous ;
|
||||||
;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;
|
||||||
|
@ -1579,6 +1583,8 @@ zend.assertions = 1
|
||||||
; http://php.net/assert.quiet-eval
|
; http://php.net/assert.quiet-eval
|
||||||
;assert.quiet_eval = 0
|
;assert.quiet_eval = 0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[COM]
|
[COM]
|
||||||
; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs
|
; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs
|
||||||
; http://php.net/com.typelib-file
|
; http://php.net/com.typelib-file
|
||||||
|
|
|
@ -359,6 +359,12 @@ zend.enable_gc = On
|
||||||
; Default: ""
|
; Default: ""
|
||||||
;zend.script_encoding =
|
;zend.script_encoding =
|
||||||
|
|
||||||
|
; Allows to include or exclude arguments from stack traces generated for exceptions
|
||||||
|
; Default: Off
|
||||||
|
; In production, it is recommended to turn this setting on to prohibit the output
|
||||||
|
; of sensitive information in stack traces
|
||||||
|
zend.exception_ignore_args = On
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;
|
||||||
; Miscellaneous ;
|
; Miscellaneous ;
|
||||||
;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue