Author: hbelusca Date: Sat Oct 31 22:59:08 2015 New Revision: 69767
URL: http://svn.reactos.org/svn/reactos?rev=69767&view=rev Log: [NTVDM]: Correctly compute the command-line length to be communicated to COMMAND.COM for standalone mode.
Modified: trunk/reactos/subsystems/mvdm/ntvdm/dos/dem.c
Modified: trunk/reactos/subsystems/mvdm/ntvdm/dos/dem.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/dos/d... ============================================================================== --- trunk/reactos/subsystems/mvdm/ntvdm/dos/dem.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/mvdm/ntvdm/dos/dem.c [iso-8859-1] Sat Oct 31 22:59:08 2015 @@ -378,20 +378,18 @@
#endif
+ /* Compute the command line length, not counting the terminating "\r\n" */ CmdLen = strlen(CmdLine); - DPRINT1("Starting '%s' ('%.*s')...\n", - AppName, - /* Display the command line without the terminating 0d 0a (and skip the terminating NULL) */ - CmdLen >= 2 ? (CmdLine[CmdLen - 2] == '\r' ? CmdLen - 2 - : CmdLen) - : CmdLen, - CmdLine); + if (CmdLen >= 2 && CmdLine[CmdLen - 2] == '\r') + CmdLen -= 2; + + DPRINT1("Starting '%s' ('%.*s')...\n", AppName, CmdLen, CmdLine);
/* Start the process */ // FIXME: Merge 'Env' with the master environment SEG_OFF_TO_PTR(SYSTEM_ENV_BLOCK, 0) // FIXME: Environment RtlCopyMemory(SEG_OFF_TO_PTR(DataStruct->AppNameSeg, DataStruct->AppNameOff), AppName, MAX_PATH); - *(PBYTE)(SEG_OFF_TO_PTR(DataStruct->CmdLineSeg, DataStruct->CmdLineOff)) = (BYTE)(strlen(CmdLine) - 2); + *(PBYTE)(SEG_OFF_TO_PTR(DataStruct->CmdLineSeg, DataStruct->CmdLineOff)) = (BYTE)CmdLen; RtlCopyMemory(SEG_OFF_TO_PTR(DataStruct->CmdLineSeg, DataStruct->CmdLineOff + 1), CmdLine, DOS_CMDLINE_LENGTH);
#ifndef STANDALONE