diff --git a/lib/libc/mingw/crt/intrincs/RtlSecureZeroMemory.c b/lib/libc/mingw/crt/intrincs/RtlSecureZeroMemory.c new file mode 100644 index 0000000000..8255a1e238 --- /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 7725a91f50..1e20d32770 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",