]> granicus.if.org Git - php/commitdiff
Fix segfault in token_get_all_variation19.phpt
authorAlessandro Chitolina <alekitto@gmail.com>
Sat, 18 Nov 2017 19:47:31 +0000 (20:47 +0100)
committerNikita Popov <nikita.ppv@gmail.com>
Sat, 18 Nov 2017 23:48:48 +0000 (00:48 +0100)
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index 4039348ea49ac7adf63e41ecec0c83034ddd1932..ebdca64f95cbcbf6fc9e2714d6c6138f7035944c 100644 (file)
@@ -2835,7 +2835,7 @@ ZEND_VM_HANDLER(54, ZEND_ROPE_INIT, UNUSED, CONST|TMPVAR|CV, NUM)
                var = GET_OP2_ZVAL_PTR(BP_VAR_R);
                rope[0] = Z_STR_P(var);
                if (UNEXPECTED(Z_REFCOUNTED_P(var))) {
-                       Z_ADDREF_P(Z_STR_P(var));
+                       Z_ADDREF_P(var);
                }
        } else {
                var = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R);
index ec9507e55deecfe7901a0863d6214b170963cfa9..6f1a607a1e93503922a987391660b1b06c079e58 100644 (file)
@@ -28280,7 +28280,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ROPE_INIT_SPEC_UNUSED_CONST_HA
                var = RT_CONSTANT(opline, opline->op2);
                rope[0] = Z_STR_P(var);
                if (UNEXPECTED(Z_REFCOUNTED_P(var))) {
-                       Z_ADDREF_P(Z_STR_P(var));
+                       Z_ADDREF_P(var);
                }
        } else {
                var = RT_CONSTANT(opline, opline->op2);
@@ -30904,7 +30904,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ROPE_INIT_SPEC_UNUSED_CV_HANDL
                var = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
                rope[0] = Z_STR_P(var);
                if (UNEXPECTED(Z_REFCOUNTED_P(var))) {
-                       Z_ADDREF_P(Z_STR_P(var));
+                       Z_ADDREF_P(var);
                }
        } else {
                var = _get_zval_ptr_cv_undef(opline->op2.var EXECUTE_DATA_CC);
@@ -32651,7 +32651,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ROPE_INIT_SPEC_UNUSED_TMPVAR_H
                var = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
                rope[0] = Z_STR_P(var);
                if (UNEXPECTED(Z_REFCOUNTED_P(var))) {
-                       Z_ADDREF_P(Z_STR_P(var));
+                       Z_ADDREF_P(var);
                }
        } else {
                var = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);