Commit 8d116a4ba10 for php.net

commit 8d116a4ba10703c54d947d95e152d25d75d45aa0
Author: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
Date:   Sun Jun 29 14:29:28 2025 +0200

    Implement GH-15483: Use C23 memset_explicit() for ZEND_SECURE_ZERO() if available (#18713)

diff --git a/Zend/zend_portability.h b/Zend/zend_portability.h
index 97bd038ecf3..7a41a496a0e 100644
--- a/Zend/zend_portability.h
+++ b/Zend/zend_portability.h
@@ -496,6 +496,8 @@ extern "C++" {

 #ifdef ZEND_WIN32
 #define ZEND_SECURE_ZERO(var, size) RtlSecureZeroMemory((var), (size))
+#elif defined(HAVE_MEMSET_EXPLICIT)
+#define ZEND_SECURE_ZERO(var, size) memset_explicit((var), 0, (size))
 #else
 #define ZEND_SECURE_ZERO(var, size) explicit_bzero((var), (size))
 #endif
diff --git a/configure.ac b/configure.ac
index f6f305ba053..e4a8c31de47 100644
--- a/configure.ac
+++ b/configure.ac
@@ -564,6 +564,7 @@ AC_CHECK_FUNCS(m4_normalize([
   memmem
   mempcpy
   memrchr
+  memset_explicit
   mkstemp
   mmap
   nice
diff --git a/main/explicit_bzero.c b/main/explicit_bzero.c
index 75cd126ee9a..c49bdede662 100644
--- a/main/explicit_bzero.c
+++ b/main/explicit_bzero.c
@@ -28,8 +28,10 @@

 PHPAPI void php_explicit_bzero(void *dst, size_t siz)
 {
-#ifdef HAVE_EXPLICIT_MEMSET
-    explicit_memset(dst, 0, siz);
+#ifdef HAVE_MEMSET_EXPLICIT /* C23 */
+	memset_explicit(dst, 0, siz);
+#elif defined(HAVE_EXPLICIT_MEMSET) /* NetBSD-specific */
+	explicit_memset(dst, 0, siz);
 #elif defined(PHP_WIN32)
 	RtlSecureZeroMemory(dst, siz);
 #elif defined(__GNUC__)