From 8a1b2b51be6b2f2b766ee4d3ee1cfbb71086a745 Mon Sep 17 00:00:00 2001 From: Stefan Ginsberg Date: Thu, 8 Oct 2009 20:06:37 +0000 Subject: [PATCH 1/1] - Stub out ExpSystemErrorHandler more properly. svn path=/trunk/; revision=43337 --- reactos/ntoskrnl/ex/harderr.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/reactos/ntoskrnl/ex/harderr.c b/reactos/ntoskrnl/ex/harderr.c index e3f15850412..266fefc55e8 100644 --- a/reactos/ntoskrnl/ex/harderr.c +++ b/reactos/ntoskrnl/ex/harderr.c @@ -58,12 +58,26 @@ ExpSystemErrorHandler(IN NTSTATUS ErrorStatus, IN PULONG_PTR Parameters, IN BOOLEAN Shutdown) { - ULONG_PTR Dummy[4] = {0, 0, 0, 0}; + ULONG_PTR BugCheckParameters[MAXIMUM_HARDERROR_PARAMETERS] = {0, 0, 0, 0}; + ULONG i; + + /* Sanity check */ + ASSERT(NumberOfParameters <= MAXIMUM_HARDERROR_PARAMETERS); + + /* + * KeBugCheck expects MAXIMUM_HARDERROR_PARAMETERS parameters, + * but we might get called with less, so use a local buffer here. + */ + for (i = 0; i < NumberOfParameters; i++) + { + /* Copy them over */ + BugCheckParameters[i] = Parameters[i]; + } /* FIXME: STUB */ KeBugCheckEx(FATAL_UNHANDLED_HARD_ERROR, ErrorStatus, - (ULONG_PTR)Dummy, + (ULONG_PTR)BugCheckParameters, 0, 0); return STATUS_SUCCESS; @@ -507,7 +521,7 @@ ExRaiseHardError(IN NTSTATUS ErrorStatus, * Optional string parameter (can be only one per error code) * * @param Parameters - * Array of ULONG parameters for use in error message string + * Array of ULONG_PTR parameters for use in error message string * * @param ValidResponseOptions * See HARDERROR_RESPONSE_OPTION for possible values description -- 2.17.1