]> granicus.if.org Git - php/commitdiff
- Fixed bug #28839 (SIGSEGV in interactive mode (php -a))
authorfoobar <sniper@php.net>
Sat, 26 Mar 2005 02:43:02 +0000 (02:43 +0000)
committerfoobar <sniper@php.net>
Sat, 26 Mar 2005 02:43:02 +0000 (02:43 +0000)
  (kameshj at fastmail dot fm)

Zend/zend_execute_API.c

index 40ccb5e0fc6c3ff0e09209eb4d10facfb196b9a0..e49086acc75e8092fb32ca5323dbae254b6c3628 100644 (file)
@@ -1094,6 +1094,17 @@ void execute_new_code(TSRMLS_D)
                        opline->op2.u.constant.is_ref = 1;
                        opline->op2.u.constant.refcount = 2;
                }
+               switch (opline->opcode) {
+                       case ZEND_JMP:
+                               opline->op1.u.jmp_addr = &CG(active_op_array)->opcodes[opline->op1.u.opline_num];
+                               break;
+                       case ZEND_JMPZ:
+                       case ZEND_JMPNZ:
+                       case ZEND_JMPZ_EX:
+                       case ZEND_JMPNZ_EX:
+                               opline->op2.u.jmp_addr = &CG(active_op_array)->opcodes[opline->op2.u.opline_num];
+                               break;
+               }
                ZEND_VM_SET_OPCODE_HANDLER(opline);
                opline++;
        }