DoCommand()
Remove one more hardcode buffer size. Remove limit command to MAX_PATH.
No check for limit command line-
Modified: trunk/reactos/subsys/system/cmd/cmd.c
_____
Modified: trunk/reactos/subsys/system/cmd/cmd.c
--- trunk/reactos/subsys/system/cmd/cmd.c 2005-09-12 17:10:00 UTC
(rev 17820)
+++ trunk/reactos/subsys/system/cmd/cmd.c 2005-09-12 19:50:16 UTC
(rev 17821)
@@ -532,17 +532,26 @@
static VOID
DoCommand (LPTSTR line)
{
- TCHAR com[CMDLINE_LENGTH]; /* the first word in the command */
- LPTSTR cp = com;
+ TCHAR *com = NULL; /* the first word in the command */
+ TCHAR *cp = NULL;
LPTSTR cstart;
LPTSTR rest; /* pointer to the rest of the command line */
INT cl;
LPCOMMAND cmdptr;
+
#ifdef _DEBUG
DebugPrintf (_T("DoCommand: (\'%s\')\n"), line);
#endif /* DEBUG */
+ com = malloc( (_tcslen(line) +512)*sizeof(TCHAR) );
+ if (com == NULL)
+ {
+ error_out_of_memory();
+ return;
+ }
+
+ cp = com;
/* Skip over initial white space */
while (_istspace (*line))
line++;
@@ -574,12 +583,15 @@
/* Terminate first word */
*cp = _T('\0');
- /* commands are limited to MAX_PATH */
+ /* Do not limit commands to MAX_PATH */
+ /*
if(_tcslen(com) > MAX_PATH)
{
error_bad_command();
+ free(com);
return;
}
+ */
/* Skip over whitespace to rest of line */
while (_istspace (*rest))
@@ -627,6 +639,7 @@
}
}
}
+ free(com);
}