summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2012-02-14 09:27:08 +0000
committerDmitry Stogov <dmitry@php.net>2012-02-14 09:27:08 +0000
commit49ce9b9bff5d83742ab6eeb852a899e51c9778c9 (patch)
tree0850f60cb213212a2324021fd570a6bae3b5e0b2
parent04f6171012cb65f3447ec66d62da70300d307799 (diff)
downloadphp-git-49ce9b9bff5d83742ab6eeb852a899e51c9778c9.tar.gz
Added ability to reset user opcode handlers (Yoram)
-rw-r--r--NEWS1
-rw-r--r--Zend/zend_execute.c7
2 files changed, 7 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 2da0b6dbf5..613d918866 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,7 @@ PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? Feb 2012, PHP 5.4.0 RC 8
- Core:
+ . Added ability to reset user opcode handlers (Yoram).
. Improved max_input_vars directive to check nested variables (Dmitry).
. Fixed bug #60965 (Buffer overflow on htmlspecialchars/entities with
$double=false). (Gustavo)
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 1798045bc9..d72fc7369a 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -1512,7 +1512,12 @@ ZEND_API void execute_internal(zend_execute_data *execute_data_ptr, int return_v
ZEND_API int zend_set_user_opcode_handler(zend_uchar opcode, user_opcode_handler_t handler)
{
if (opcode != ZEND_USER_OPCODE) {
- zend_user_opcodes[opcode] = ZEND_USER_OPCODE;
+ if (handler == NULL) {
+ /* restore the original handler */
+ zend_user_opcodes[opcode] = opcode;
+ } else {
+ zend_user_opcodes[opcode] = ZEND_USER_OPCODE;
+ }
zend_user_opcode_handlers[opcode] = handler;
return SUCCESS;
}