[NTOS:KD] Protect against invalid user arguments in KdpPrompt. CORE-14057
[reactos.git] / ntoskrnl / include / internal / kd.h
index 0943e54..9bb7443 100644 (file)
@@ -2,18 +2,11 @@
 
 #include <cportlib/cportlib.h>
 
-#ifdef _M_PPC
-#define KdDebuggerEnabled _KdDebuggerEnabled
-#define KdDebuggerNotPresent _KdDebuggerNotPresent
-#endif
-
 //
 // Kernel Debugger Port Definition
 //
 struct _KD_DISPATCH_TABLE;
 extern CPPORT GdbPortInfo;
-extern BOOLEAN _KdDebuggerEnabled;
-extern BOOLEAN _KdDebuggerNotPresent;
 extern BOOLEAN KdBreakAfterSymbolLoad;
 extern BOOLEAN KdPitchDebugger;
 extern BOOLEAN KdIgnoreUmExceptions;
@@ -43,7 +36,7 @@ KdPortPutByteEx(
 
 #if defined(KDBG) || DBG
 
-#if KDBG
+#if defined(KDBG)
 typedef
 BOOLEAN
 (NTAPI *PKDBG_CLI_ROUTINE)(
@@ -74,7 +67,7 @@ KdbSymGetAddressInformation(
     IN PROSSYM_INFO  RosSymInfo,
     IN ULONG_PTR  RelativeAddress,
 #ifdef __ROS_DWARF__
-       IN PROSSYM_LINEINFO RosSymLineInfo
+    IN PROSSYM_LINEINFO RosSymLineInfo
 #else
     OUT PULONG LineNumber  OPTIONAL,
     OUT PCH FileName  OPTIONAL,
@@ -206,10 +199,11 @@ KdpPrintString(
 ULONG
 NTAPI
 KdpPrompt(
-    IN LPSTR InString,
-    IN USHORT InStringLength,
-    OUT LPSTR OutString,
-    IN USHORT OutStringLength
+    _In_reads_bytes_(InStringLength) PCHAR UnsafeInString,
+    _In_ USHORT InStringLength,
+    _Out_writes_bytes_(OutStringLength) PCHAR UnsafeOutString,
+    _In_ USHORT OutStringLength,
+    _In_ KPROCESSOR_MODE PreviousMode
 );
 
 BOOLEAN
@@ -361,7 +355,7 @@ extern ULONG Kd_WIN2000_Mask;
 
 #endif
 
-#if DBG
+#if DBG && defined(_M_IX86) && !defined(_WINKD_) // See ke/i386/traphdlr.c
 #define ID_Win32PreServiceHook 'WSH0'
 #define ID_Win32PostServiceHook 'WSH1'
 typedef void (NTAPI *PKDBG_PRESERVICEHOOK)(ULONG, PULONG_PTR);