mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
Implement GH-15483: Use C23 memset_explicit() for ZEND_SECURE_ZERO() if available (#18713)
This commit is contained in:
parent
761478a032
commit
8d116a4ba1
3 changed files with 7 additions and 2 deletions
|
@ -496,6 +496,8 @@ extern "C++" {
|
||||||
|
|
||||||
#ifdef ZEND_WIN32
|
#ifdef ZEND_WIN32
|
||||||
#define ZEND_SECURE_ZERO(var, size) RtlSecureZeroMemory((var), (size))
|
#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
|
#else
|
||||||
#define ZEND_SECURE_ZERO(var, size) explicit_bzero((var), (size))
|
#define ZEND_SECURE_ZERO(var, size) explicit_bzero((var), (size))
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -564,6 +564,7 @@ AC_CHECK_FUNCS(m4_normalize([
|
||||||
memmem
|
memmem
|
||||||
mempcpy
|
mempcpy
|
||||||
memrchr
|
memrchr
|
||||||
|
memset_explicit
|
||||||
mkstemp
|
mkstemp
|
||||||
mmap
|
mmap
|
||||||
nice
|
nice
|
||||||
|
|
|
@ -28,7 +28,9 @@
|
||||||
|
|
||||||
PHPAPI void php_explicit_bzero(void *dst, size_t siz)
|
PHPAPI void php_explicit_bzero(void *dst, size_t siz)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_EXPLICIT_MEMSET
|
#ifdef HAVE_MEMSET_EXPLICIT /* C23 */
|
||||||
|
memset_explicit(dst, 0, siz);
|
||||||
|
#elif defined(HAVE_EXPLICIT_MEMSET) /* NetBSD-specific */
|
||||||
explicit_memset(dst, 0, siz);
|
explicit_memset(dst, 0, siz);
|
||||||
#elif defined(PHP_WIN32)
|
#elif defined(PHP_WIN32)
|
||||||
RtlSecureZeroMemory(dst, siz);
|
RtlSecureZeroMemory(dst, siz);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue