1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 00:02:20 +01:00

Fix GH-13903: ASAN false positive underflow when executing copy()

Closes GH-13917.
This commit is contained in:
Niels Dossche
2024-04-08 20:09:24 +02:00
parent e48a5c14b9
commit ea0268264b
2 changed files with 11 additions and 0 deletions

4
NEWS
View File

@@ -6,6 +6,10 @@ PHP NEWS
. Fixed bug GH-13772 (Invalid execute_data->opline pointers in observer fcall
handlers when JIT is enabled). (Bob)
- Fibers:
. Fixed bug GH-13903 (ASAN false positive underflow when executing copy()).
(nielsdos)
- FPM:
. Fixed bug GH-13563 (Setting bool values via env in FPM config fails).
(Jakub Zelenka)

View File

@@ -62,6 +62,7 @@
#endif
#ifdef __SANITIZE_ADDRESS__
# include <sanitizer/asan_interface.h>
# include <sanitizer/common_interface_defs.h>
#endif
@@ -257,6 +258,12 @@ static void zend_fiber_stack_free(zend_fiber_stack *stack)
void *pointer = (void *) ((uintptr_t) stack->pointer - ZEND_FIBER_GUARD_PAGES * page_size);
#ifdef __SANITIZE_ADDRESS__
/* If another mmap happens after unmapping, it may trigger the stale stack red zones
* so we have to unpoison it before unmapping. */
ASAN_UNPOISON_MEMORY_REGION(pointer, stack->size + ZEND_FIBER_GUARD_PAGES * page_size);
#endif
#ifdef ZEND_WIN32
VirtualFree(pointer, 0, MEM_RELEASE);
#else