We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
2 parents e9292c3 + b701fa8 commit 0bc5cb6Copy full SHA for 0bc5cb6
Zend/zend_fibers.c
@@ -62,6 +62,7 @@
62
#endif
63
64
#ifdef __SANITIZE_ADDRESS__
65
+# include <sanitizer/asan_interface.h>
66
# include <sanitizer/common_interface_defs.h>
67
68
@@ -306,6 +307,12 @@ static void zend_fiber_stack_free(zend_fiber_stack *stack)
306
307
308
void *pointer = (void *) ((uintptr_t) stack->pointer - ZEND_FIBER_GUARD_PAGES * page_size);
309
310
+#ifdef __SANITIZE_ADDRESS__
311
+ /* If another mmap happens after unmapping, it may trigger the stale stack red zones
312
+ * so we have to unpoison it before unmapping. */
313
+ ASAN_UNPOISON_MEMORY_REGION(pointer, stack->size + ZEND_FIBER_GUARD_PAGES * page_size);
314
+#endif
315
+
316
#ifdef ZEND_WIN32
317
VirtualFree(pointer, 0, MEM_RELEASE);
318
#else
0 commit comments