Skip to content

Commit a4f1c89

Browse files
reset global pointers to prevent use-after-free
1 parent 7e7817b commit a4f1c89

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

ext/opcache/jit/zend_jit.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -791,7 +791,7 @@ ZEND_EXT_API void zend_jit_status(zval *ret)
791791
add_assoc_long(&stats, "kind", JIT_G(trigger));
792792
add_assoc_long(&stats, "opt_level", JIT_G(opt_level));
793793
add_assoc_long(&stats, "opt_flags", JIT_G(opt_flags));
794-
if (dasm_buf) {
794+
if (dasm_buf && dasm_end && dasm_ptr) {
795795
add_assoc_long(&stats, "buffer_size", (char*)dasm_end - (char*)dasm_buf);
796796
add_assoc_long(&stats, "buffer_free", (char*)dasm_end - (char*)*dasm_ptr);
797797
} else {
@@ -5087,6 +5087,12 @@ ZEND_EXT_API void zend_jit_shutdown(void)
50875087
#else
50885088
zend_jit_trace_free_caches(&jit_globals);
50895089
#endif
5090+
5091+
// Reset global pointers to prevent use-after-free in Apache reload
5092+
dasm_ptr = NULL;
5093+
dasm_buf = NULL;
5094+
dasm_end = NULL;
5095+
dasm_size = 0;
50905096
}
50915097

50925098
static void zend_jit_reset_counters(void)

0 commit comments

Comments
 (0)