https://git.reactos.org/?p=reactos.git;a=commitdiff;h=b0f3e623b7efdd04fca95…
commit b0f3e623b7efdd04fca9523d0168ab14f5bae8ab
Author: Timo Kreuzer <timo.kreuzer(a)reactos.org>
AuthorDate: Fri Jan 17 11:42:45 2025 +0200
Commit: Timo Kreuzer <timo.kreuzer(a)reactos.org>
CommitDate: Sun Jan 26 18:08:55 2025 +0200
[UCRT:VCRUNTIME] Implement __report_gsfailure()
---
sdk/lib/ucrt/vcruntime/__report_gsfailure.c | 21 +++++++++++++++++++++
sdk/lib/ucrt/vcruntime/vcruntime.cmake | 1 +
2 files changed, 22 insertions(+)
diff --git a/sdk/lib/ucrt/vcruntime/__report_gsfailure.c
b/sdk/lib/ucrt/vcruntime/__report_gsfailure.c
new file mode 100644
index 00000000000..d45f96df22f
--- /dev/null
+++ b/sdk/lib/ucrt/vcruntime/__report_gsfailure.c
@@ -0,0 +1,21 @@
+//
+// __report_gsfailure.c
+//
+// Copyright (c) 2024 Timo Kreuzer
+//
+// Implementation of __report_gsfailure.
+//
+// SPDX-License-Identifier: MIT
+//
+
+#include <intrin.h>
+#include <ntrtl.h>
+
+#if defined(_M_IX86)
+__declspec(noreturn) void __cdecl __report_gsfailure(void)
+#else
+__declspec(noreturn) void __cdecl __report_gsfailure(_In_ uintptr_t _StackCookie)
+#endif
+{
+ __fastfail(FAST_FAIL_STACK_COOKIE_CHECK_FAILURE);
+}
diff --git a/sdk/lib/ucrt/vcruntime/vcruntime.cmake
b/sdk/lib/ucrt/vcruntime/vcruntime.cmake
index e4857cfe95c..3e571e76517 100644
--- a/sdk/lib/ucrt/vcruntime/vcruntime.cmake
+++ b/sdk/lib/ucrt/vcruntime/vcruntime.cmake
@@ -1,5 +1,6 @@
list(APPEND UCRT_VCRUNTIME_SOURCES
+ vcruntime/__report_gsfailure.c
vcruntime/__security_init_cookie.c
)