[ros-diffs] [greatlrd] 17821: DoCommand()

greatlrd at svn.reactos.com greatlrd at svn.reactos.com
Mon Sep 12 21:50:20 CEST 2005


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);
 }
 
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.reactos.org/pipermail/ros-diffs/attachments/20050912/fd998175/attachment.html


More information about the Ros-diffs mailing list