From 8013d5fa399fb4635aec12c2c621dfff179a19d9 Mon Sep 17 00:00:00 2001 From: Zeev Suraski Date: Tue, 3 Feb 2004 13:42:41 +0000 Subject: [PATCH] Fix try/catch block logic --- Zend/zend_execute.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index ffaadaa133..a6e645ff55 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -4094,10 +4094,12 @@ int zend_handle_exception_handler(ZEND_OPCODE_HANDLER_ARGS) int encapsulating_block=-1; for (i=0; ilast_try_catch; i++) { - if (op_num >= EG(active_op_array)->try_catch_array[i].catch_op) { + if (EG(active_op_array)->try_catch_array[i].try_op > op_num) { + /* further blocks will not be relevant... */ break; } - if (op_num >= EG(active_op_array)->try_catch_array[i].try_op) { + if (op_num >= EG(active_op_array)->try_catch_array[i].try_op + && op_num < EG(active_op_array)->try_catch_array[i].catch_op) { encapsulating_block = i; } } -- 2.40.0