Skip to content

Commit 93d32ea

Browse files
committed
Add missing clobbered registers
Inline assembly in zend_safe_address() clobbers flags register. Add missing register in clobber list for aarch64 and powerpc64. Other archs were already correct. Fixes GH-21029
1 parent e6beffb commit 93d32ea

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

NEWS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ PHP NEWS
22
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
33
?? ??? ????, PHP 8.4.19
44

5+
- Core:
6+
. Fixed bug GH-21029 (zend_mm_heap corrupted on Aarch64, LTO builds). (Arnaud)
57

68
12 Feb 2026, PHP 8.4.18
79

Zend/zend_multiply.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,8 @@ static zend_always_inline size_t zend_safe_address(size_t nmemb, size_t size, si
267267
: "=&r"(res), "=&r"(m_overflow)
268268
: "r"(nmemb),
269269
"r"(size),
270-
"r"(offset));
270+
"r"(offset)
271+
: "cc");
271272

272273
if (UNEXPECTED(m_overflow)) {
273274
*overflow = 1;
@@ -291,7 +292,8 @@ static zend_always_inline size_t zend_safe_address(size_t nmemb, size_t size, si
291292
: "=&r"(res), "=&r"(m_overflow)
292293
: "r"(nmemb),
293294
"r"(size),
294-
"r"(offset));
295+
"r"(offset)
296+
: "xer");
295297

296298
if (UNEXPECTED(m_overflow)) {
297299
*overflow = 1;

0 commit comments

Comments
 (0)