Skip to content

Commit 0bc5cb6

Browse files
committed
Merge branch 'PHP-8.3'
* PHP-8.3: Fix GH-13903: ASAN false positive underflow when executing copy()
2 parents e9292c3 + b701fa8 commit 0bc5cb6

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

Zend/zend_fibers.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
#endif
6363

6464
#ifdef __SANITIZE_ADDRESS__
65+
# include <sanitizer/asan_interface.h>
6566
# include <sanitizer/common_interface_defs.h>
6667
#endif
6768

@@ -306,6 +307,12 @@ static void zend_fiber_stack_free(zend_fiber_stack *stack)
306307

307308
void *pointer = (void *) ((uintptr_t) stack->pointer - ZEND_FIBER_GUARD_PAGES * page_size);
308309

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+
309316
#ifdef ZEND_WIN32
310317
VirtualFree(pointer, 0, MEM_RELEASE);
311318
#else

0 commit comments

Comments
 (0)