Skip to content

Commit e65b966

Browse files
committed
Fixed uninitialized EX(call)->called_scope
1 parent 5aabf24 commit e65b966

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

Zend/zend_vm_def.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2636,6 +2636,7 @@ ZEND_VM_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONST|TMP|VAR|CV)
26362636
CACHE_PTR(opline->op2.literal->cache_slot, call->fbc);
26372637
}
26382638
call->object = NULL;
2639+
call->called_scope = NULL;
26392640
call->is_ctor_call = 0;
26402641
EX(call) = call;
26412642
/*CHECK_EXCEPTION();*/
@@ -2663,6 +2664,7 @@ ZEND_VM_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONST|TMP|VAR|CV)
26632664
efree(lcname);
26642665
FREE_OP2();
26652666
call->object = NULL;
2667+
call->called_scope = NULL;
26662668
call->is_ctor_call = 0;
26672669
EX(call) = call;
26682670
CHECK_EXCEPTION();
@@ -2782,6 +2784,7 @@ ZEND_VM_HANDLER(69, ZEND_INIT_NS_FCALL_BY_NAME, ANY, CONST)
27822784
}
27832785

27842786
call->object = NULL;
2787+
call->called_scope = NULL;
27852788
call->is_ctor_call = 0;
27862789
EX(call) = call;
27872790
ZEND_VM_NEXT_OPCODE();
@@ -2810,6 +2813,7 @@ ZEND_VM_HANDLER(60, ZEND_DO_FCALL, CONST, ANY)
28102813
}
28112814
call->fbc = EX(function_state).function;
28122815
call->object = NULL;
2816+
call->called_scope = NULL;
28132817
call->is_ctor_call = 0;
28142818
EX(call) = call;
28152819

Zend/zend_vm_execute.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1218,6 +1218,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPCODE
12181218
CACHE_PTR(opline->op2.literal->cache_slot, call->fbc);
12191219
}
12201220
call->object = NULL;
1221+
call->called_scope = NULL;
12211222
call->is_ctor_call = 0;
12221223
EX(call) = call;
12231224
/*CHECK_EXCEPTION();*/
@@ -1245,6 +1246,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPCODE
12451246
efree(lcname);
12461247

12471248
call->object = NULL;
1249+
call->called_scope = NULL;
12481250
call->is_ctor_call = 0;
12491251
EX(call) = call;
12501252
CHECK_EXCEPTION();
@@ -1364,6 +1366,7 @@ static int ZEND_FASTCALL ZEND_INIT_NS_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPC
13641366
}
13651367

13661368
call->object = NULL;
1369+
call->called_scope = NULL;
13671370
call->is_ctor_call = 0;
13681371
EX(call) = call;
13691372
ZEND_VM_NEXT_OPCODE();
@@ -1535,6 +1538,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_TMP_HANDLER(ZEND_OPCODE_H
15351538
CACHE_PTR(opline->op2.literal->cache_slot, call->fbc);
15361539
}
15371540
call->object = NULL;
1541+
call->called_scope = NULL;
15381542
call->is_ctor_call = 0;
15391543
EX(call) = call;
15401544
/*CHECK_EXCEPTION();*/
@@ -1562,6 +1566,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_TMP_HANDLER(ZEND_OPCODE_H
15621566
efree(lcname);
15631567
zval_dtor(free_op2.var);
15641568
call->object = NULL;
1569+
call->called_scope = NULL;
15651570
call->is_ctor_call = 0;
15661571
EX(call) = call;
15671572
CHECK_EXCEPTION();
@@ -1713,6 +1718,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_VAR_HANDLER(ZEND_OPCODE_H
17131718
CACHE_PTR(opline->op2.literal->cache_slot, call->fbc);
17141719
}
17151720
call->object = NULL;
1721+
call->called_scope = NULL;
17161722
call->is_ctor_call = 0;
17171723
EX(call) = call;
17181724
/*CHECK_EXCEPTION();*/
@@ -1740,6 +1746,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_VAR_HANDLER(ZEND_OPCODE_H
17401746
efree(lcname);
17411747
if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
17421748
call->object = NULL;
1749+
call->called_scope = NULL;
17431750
call->is_ctor_call = 0;
17441751
EX(call) = call;
17451752
CHECK_EXCEPTION();
@@ -1926,6 +1933,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CV_HANDLER(ZEND_OPCODE_HA
19261933
CACHE_PTR(opline->op2.literal->cache_slot, call->fbc);
19271934
}
19281935
call->object = NULL;
1936+
call->called_scope = NULL;
19291937
call->is_ctor_call = 0;
19301938
EX(call) = call;
19311939
/*CHECK_EXCEPTION();*/
@@ -1953,6 +1961,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CV_HANDLER(ZEND_OPCODE_HA
19531961
efree(lcname);
19541962

19551963
call->object = NULL;
1964+
call->called_scope = NULL;
19561965
call->is_ctor_call = 0;
19571966
EX(call) = call;
19581967
CHECK_EXCEPTION();
@@ -2287,6 +2296,7 @@ static int ZEND_FASTCALL ZEND_DO_FCALL_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
22872296
}
22882297
call->fbc = EX(function_state).function;
22892298
call->object = NULL;
2299+
call->called_scope = NULL;
22902300
call->is_ctor_call = 0;
22912301
EX(call) = call;
22922302

0 commit comments

Comments
 (0)