diff options
Diffstat (limited to 'Zend/zend_vm_opcodes.c')
-rw-r--r-- | Zend/zend_vm_opcodes.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/Zend/zend_vm_opcodes.c b/Zend/zend_vm_opcodes.c index a40134936d..52b7cb855c 100644 --- a/Zend/zend_vm_opcodes.c +++ b/Zend/zend_vm_opcodes.c @@ -20,6 +20,7 @@ #include <stdio.h> #include <zend.h> +#include <zend_vm_opcodes.h> static const char *zend_vm_opcodes_names[199] = { "ZEND_NOP", @@ -426,8 +427,14 @@ static uint32_t zend_vm_opcodes_flags[199] = { }; ZEND_API const char* ZEND_FASTCALL zend_get_opcode_name(zend_uchar opcode) { + if (UNEXPECTED(opcode > ZEND_VM_LAST_OPCODE)) { + return NULL; + } return zend_vm_opcodes_names[opcode]; } ZEND_API uint32_t ZEND_FASTCALL zend_get_opcode_flags(zend_uchar opcode) { + if (UNEXPECTED(opcode > ZEND_VM_LAST_OPCODE)) { + opcode = ZEND_NOP; + } return zend_vm_opcodes_flags[opcode]; } |