File tree Expand file tree Collapse file tree 1 file changed +7
-1
lines changed Expand file tree Collapse file tree 1 file changed +7
-1
lines changed Original file line number Diff line number Diff line change @@ -209,8 +209,14 @@ mod detail {
209
209
// allowed because it's only used on the frameless path
210
210
#[ allow( unused_variables) ]
211
211
if let Some ( func) = unsafe { execute_data. func . as_ref ( ) } {
212
+ // It's possible that this is a fake frame put there by
213
+ // the engine, see accel_preload on PHP 8.4 and the local
214
+ // variable `fake_execute_data`. The frame is zeroed in
215
+ // this case, so we can check for null.
212
216
#[ cfg( php_frameless) ]
213
- if !func. is_internal ( ) {
217
+ if !func. is_internal ( ) && !execute_data. opline . is_null ( ) {
218
+ // SAFETY: if it's not null, then it should be valid
219
+ // or something else has messed up already.
214
220
let opline = unsafe { & * execute_data. opline } ;
215
221
match opline. opcode as u32 {
216
222
ZEND_FRAMELESS_ICALL_0
You can’t perform that action at this time.
0 commit comments