X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=dll%2Fwin32%2Fkernel32%2Fclient%2Fproc.c;h=fee32152f8577b1008b6120dd01b138ab8e2c76f;hp=8e9af3ffc5b196f655ee2e1a86638ab2bebed2de;hb=4c66e672da4b7bb78ebdde42f9e23da59c24d920;hpb=4c459af487b3029405805b6af5ba6e9b6a9329b9 diff --git a/dll/win32/kernel32/client/proc.c b/dll/win32/kernel32/client/proc.c index 8e9af3ffc5b..fee32152f85 100644 --- a/dll/win32/kernel32/client/proc.c +++ b/dll/win32/kernel32/client/proc.c @@ -2541,6 +2541,7 @@ CreateProcessInternalW(HANDLE hToken, WCHAR SaveChar = 0; ULONG RetVal; UINT Error = 0; + UINT Length; BOOLEAN SearchDone = FALSE; BOOLEAN Escape = FALSE; CLIENT_ID ClientId; @@ -2630,7 +2631,13 @@ CreateProcessInternalW(HANDLE hToken, } /* 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); /*