From 8019694e17b6e6b6d3f9cab91233deea7c39a301 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Mon, 13 Jan 2025 03:19:39 +0100 Subject: [PATCH] mingw: Add upstream RtlSecureZeroMemory implementation. Closes #22475. --- .../mingw/crt/intrincs/RtlSecureZeroMemory.c | 17 +++++++++++++++++ src/mingw.zig | 1 + 2 files changed, 18 insertions(+) create mode 100644 lib/libc/mingw/crt/intrincs/RtlSecureZeroMemory.c diff --git a/lib/libc/mingw/crt/intrincs/RtlSecureZeroMemory.c b/lib/libc/mingw/crt/intrincs/RtlSecureZeroMemory.c new file mode 100644 index 0000000000000000000000000000000000000000..8255a1e238ab790ce62213283b1d2b0a0c2e04d5 --- /dev/null +++ b/lib/libc/mingw/crt/intrincs/RtlSecureZeroMemory.c @@ -0,0 +1,17 @@ +#define __CRT__NO_INLINE 1 +#include + +PVOID WINAPI RtlSecureZeroMemory(PVOID ptr,SIZE_T cnt) +{ + volatile char *vptr = (volatile char *)ptr; +#ifdef __x86_64 + __stosb ((PBYTE)((DWORD64)vptr),0,cnt); +#else + while (cnt != 0) + { + *vptr++ = 0; + cnt--; + } +#endif /* __x86_64 */ + return ptr; +} diff --git a/src/mingw.zig b/src/mingw.zig index 7725a91f5003f9cfd7f3254766b0cb22f30977eb..1e20d327701326820c650f88faa2a74b28414d25 100644 --- a/src/mingw.zig +++ b/src/mingw.zig @@ -487,6 +487,7 @@ const mingw32_generic_src = [_][]const u8{ "crt" ++ path.sep_str ++ "cxa_atexit.c", "crt" ++ path.sep_str ++ "cxa_thread_atexit.c", "crt" ++ path.sep_str ++ "tls_atexit.c", + "crt" ++ path.sep_str ++ "intrincs" ++ path.sep_str ++ "RtlSecureZeroMemory.c", // mingwex "cfguard" ++ path.sep_str ++ "mingw_cfguard_support.c", "complex" ++ path.sep_str ++ "_cabs.c", -- 2.54.0