Skip to content

Commit c5af715

Browse files
committed
Fixed hidden property handling
1 parent 28aacbf commit c5af715

File tree

2 files changed

+52
-0
lines changed

2 files changed

+52
-0
lines changed

Zend/zend_vm_def.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1422,6 +1422,10 @@ ZEND_VM_HANDLER(85, ZEND_FETCH_OBJ_W, VAR|UNUSED|CV, CONST|TMP|VAR|CV)
14221422

14231423
if (Z_TYPE_P(retval_ptr) == IS_INDIRECT) {
14241424
retval_ptr = Z_INDIRECT_P(retval_ptr);
1425+
if (retval_ptr == &EG(uninitialized_zval)) {
1426+
CHECK_EXCEPTION();
1427+
ZEND_VM_NEXT_OPCODE();
1428+
}
14251429
}
14261430
if (!Z_ISREF_P(retval_ptr)) {
14271431
if (Z_REFCOUNTED_P(retval_ptr)) {

Zend/zend_vm_execute.h

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14760,6 +14760,10 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HA
1476014760

1476114761
if (Z_TYPE_P(retval_ptr) == IS_INDIRECT) {
1476214762
retval_ptr = Z_INDIRECT_P(retval_ptr);
14763+
if (retval_ptr == &EG(uninitialized_zval)) {
14764+
CHECK_EXCEPTION();
14765+
ZEND_VM_NEXT_OPCODE();
14766+
}
1476314767
}
1476414768
if (!Z_ISREF_P(retval_ptr)) {
1476514769
if (Z_REFCOUNTED_P(retval_ptr)) {
@@ -17055,6 +17059,10 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAND
1705517059

1705617060
if (Z_TYPE_P(retval_ptr) == IS_INDIRECT) {
1705717061
retval_ptr = Z_INDIRECT_P(retval_ptr);
17062+
if (retval_ptr == &EG(uninitialized_zval)) {
17063+
CHECK_EXCEPTION();
17064+
ZEND_VM_NEXT_OPCODE();
17065+
}
1705817066
}
1705917067
if (!Z_ISREF_P(retval_ptr)) {
1706017068
if (Z_REFCOUNTED_P(retval_ptr)) {
@@ -19247,6 +19255,10 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAND
1924719255

1924819256
if (Z_TYPE_P(retval_ptr) == IS_INDIRECT) {
1924919257
retval_ptr = Z_INDIRECT_P(retval_ptr);
19258+
if (retval_ptr == &EG(uninitialized_zval)) {
19259+
CHECK_EXCEPTION();
19260+
ZEND_VM_NEXT_OPCODE();
19261+
}
1925019262
}
1925119263
if (!Z_ISREF_P(retval_ptr)) {
1925219264
if (Z_REFCOUNTED_P(retval_ptr)) {
@@ -22627,6 +22639,10 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDL
2262722639

2262822640
if (Z_TYPE_P(retval_ptr) == IS_INDIRECT) {
2262922641
retval_ptr = Z_INDIRECT_P(retval_ptr);
22642+
if (retval_ptr == &EG(uninitialized_zval)) {
22643+
CHECK_EXCEPTION();
22644+
ZEND_VM_NEXT_OPCODE();
22645+
}
2263022646
}
2263122647
if (!Z_ISREF_P(retval_ptr)) {
2263222648
if (Z_REFCOUNTED_P(retval_ptr)) {
@@ -24339,6 +24355,10 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE
2433924355

2434024356
if (Z_TYPE_P(retval_ptr) == IS_INDIRECT) {
2434124357
retval_ptr = Z_INDIRECT_P(retval_ptr);
24358+
if (retval_ptr == &EG(uninitialized_zval)) {
24359+
CHECK_EXCEPTION();
24360+
ZEND_VM_NEXT_OPCODE();
24361+
}
2434224362
}
2434324363
if (!Z_ISREF_P(retval_ptr)) {
2434424364
if (Z_REFCOUNTED_P(retval_ptr)) {
@@ -25716,6 +25736,10 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_H
2571625736

2571725737
if (Z_TYPE_P(retval_ptr) == IS_INDIRECT) {
2571825738
retval_ptr = Z_INDIRECT_P(retval_ptr);
25739+
if (retval_ptr == &EG(uninitialized_zval)) {
25740+
CHECK_EXCEPTION();
25741+
ZEND_VM_NEXT_OPCODE();
25742+
}
2571925743
}
2572025744
if (!Z_ISREF_P(retval_ptr)) {
2572125745
if (Z_REFCOUNTED_P(retval_ptr)) {
@@ -27009,6 +27033,10 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_H
2700927033

2701027034
if (Z_TYPE_P(retval_ptr) == IS_INDIRECT) {
2701127035
retval_ptr = Z_INDIRECT_P(retval_ptr);
27036+
if (retval_ptr == &EG(uninitialized_zval)) {
27037+
CHECK_EXCEPTION();
27038+
ZEND_VM_NEXT_OPCODE();
27039+
}
2701227040
}
2701327041
if (!Z_ISREF_P(retval_ptr)) {
2701427042
if (Z_REFCOUNTED_P(retval_ptr)) {
@@ -28709,6 +28737,10 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HA
2870928737

2871028738
if (Z_TYPE_P(retval_ptr) == IS_INDIRECT) {
2871128739
retval_ptr = Z_INDIRECT_P(retval_ptr);
28740+
if (retval_ptr == &EG(uninitialized_zval)) {
28741+
CHECK_EXCEPTION();
28742+
ZEND_VM_NEXT_OPCODE();
28743+
}
2871228744
}
2871328745
if (!Z_ISREF_P(retval_ptr)) {
2871428746
if (Z_REFCOUNTED_P(retval_ptr)) {
@@ -31823,6 +31855,10 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HAN
3182331855

3182431856
if (Z_TYPE_P(retval_ptr) == IS_INDIRECT) {
3182531857
retval_ptr = Z_INDIRECT_P(retval_ptr);
31858+
if (retval_ptr == &EG(uninitialized_zval)) {
31859+
CHECK_EXCEPTION();
31860+
ZEND_VM_NEXT_OPCODE();
31861+
}
3182631862
}
3182731863
if (!Z_ISREF_P(retval_ptr)) {
3182831864
if (Z_REFCOUNTED_P(retval_ptr)) {
@@ -33900,6 +33936,10 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDL
3390033936

3390133937
if (Z_TYPE_P(retval_ptr) == IS_INDIRECT) {
3390233938
retval_ptr = Z_INDIRECT_P(retval_ptr);
33939+
if (retval_ptr == &EG(uninitialized_zval)) {
33940+
CHECK_EXCEPTION();
33941+
ZEND_VM_NEXT_OPCODE();
33942+
}
3390333943
}
3390433944
if (!Z_ISREF_P(retval_ptr)) {
3390533945
if (Z_REFCOUNTED_P(retval_ptr)) {
@@ -35967,6 +36007,10 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDL
3596736007

3596836008
if (Z_TYPE_P(retval_ptr) == IS_INDIRECT) {
3596936009
retval_ptr = Z_INDIRECT_P(retval_ptr);
36010+
if (retval_ptr == &EG(uninitialized_zval)) {
36011+
CHECK_EXCEPTION();
36012+
ZEND_VM_NEXT_OPCODE();
36013+
}
3597036014
}
3597136015
if (!Z_ISREF_P(retval_ptr)) {
3597236016
if (Z_REFCOUNTED_P(retval_ptr)) {
@@ -39087,6 +39131,10 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLE
3908739131

3908839132
if (Z_TYPE_P(retval_ptr) == IS_INDIRECT) {
3908939133
retval_ptr = Z_INDIRECT_P(retval_ptr);
39134+
if (retval_ptr == &EG(uninitialized_zval)) {
39135+
CHECK_EXCEPTION();
39136+
ZEND_VM_NEXT_OPCODE();
39137+
}
3909039138
}
3909139139
if (!Z_ISREF_P(retval_ptr)) {
3909239140
if (Z_REFCOUNTED_P(retval_ptr)) {

0 commit comments

Comments
 (0)