You should should learnt about NT_VERIFY :)
Best regards,
Alex Ionescu
On Sun, Jun 23, 2013 at 8:55 AM, <hbelusca(a)svn.reactos.org> wrote:
Author: hbelusca
Date: Sun Jun 23 12:55:17 2013
New Revision: 59314
URL:
http://svn.reactos.org/svn/reactos?rev=59314&view=rev
Log:
[KERNEL32]
Never EVER process instructions INSIDE a debug macro (e.g. ASSERT) because
when compiling in Release Mode, the code isn't executed at all.
Fix that. See revision r59310 for more details.
Modified:
branches/ntvdm/dll/win32/kernel32/client/proc.c
Modified: branches/ntvdm/dll/win32/kernel32/client/proc.c
URL:
http://svn.reactos.org/svn/reactos/branches/ntvdm/dll/win32/kernel32/client…
==============================================================================
--- branches/ntvdm/dll/win32/kernel32/client/proc.c [iso-8859-1]
(original)
+++ branches/ntvdm/dll/win32/kernel32/client/proc.c [iso-8859-1] Sun
Jun 23 12:55:17 2013
@@ -2541,6 +2541,7 @@
WCHAR SaveChar = 0;
ULONG RetVal;
UINT Error = 0;
+ UINT Length;
BOOLEAN SearchDone = FALSE;
BOOLEAN Escape = FALSE;
CLIENT_ID ClientId;
@@ -2630,7 +2631,13 @@
}
/* Get the path to the VDM host */
- ASSERT(GetSystemDirectoryW(VdmPath, MAX_PATH - wcslen(NTVDM_STRING))
!= 0);
+ Length = GetSystemDirectoryW(VdmPath, MAX_PATH -
wcslen(NTVDM_STRING));
+ if ((Length == 0) || (Length >= MAX_PATH - wcslen(NTVDM_STRING)))
+ {
+ /* System path not found for some reason, fail */
+ SetLastError(ERROR_INVALID_NAME);
+ return FALSE;
+ }
wcscat(VdmPath, NTVDM_STRING);
/*