Remove more hardcode buffer value to dymatic buffer.
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-04 09:29:44 UTC (rev 17627)
+++ trunk/reactos/subsys/system/cmd/cmd.c	2005-09-04 09:54:59 UTC (rev 17628)
@@ -296,9 +296,9 @@
 Execute (LPTSTR Full, LPTSTR First, LPTSTR Rest)
 {
 	TCHAR szFullName[MAX_PATH];
-	TCHAR first[CMDLINE_LENGTH];
-	TCHAR rest[CMDLINE_LENGTH];
-	TCHAR full[CMDLINE_LENGTH];
+	TCHAR *first = NULL;
+	TCHAR *rest = NULL; 
+	TCHAR *full = NULL; 
 #ifndef __REACTOS__
 	TCHAR szWindowTitle[MAX_PATH];
 #endif
@@ -308,10 +308,39 @@
 	DebugPrintf (_T("Execute: \'%s\' \'%s\'\n"), first, rest);
 #endif
 
+	/* we need biger buffer that First, Rest, Full are already 
+	   need rewrite some code to use realloc when it need instead 
+	   of add 512bytes extra */
+
+	first = malloc ( _tcslen(First) + 512 * sizeof(TCHAR)); 
+	if (first == NULL)
+	{
+	 error_out_of_memory();
+	 return ;
+	}
+
+	rest =	malloc ( _tcslen(Rest) + 512 * sizeof(TCHAR)); 
+	if (rest == NULL)
+	{
+	 free (full);
+	 error_out_of_memory();
+	 return ;
+	}
+
+	full =	malloc ( _tcslen(Full) + 512 * sizeof(TCHAR));
+	if (full == NULL)
+	{
+	 free (full);
+	 free (rest);
+	 error_out_of_memory();
+	 return ;
+	}
+
+
 	/* Though it was already parsed once, we have a different set of rules
 	   for parsing before we pass to CreateProccess */
 	if(!_tcschr(Full,_T('\"')))
-	{
+	{		 
 		_tcscpy(first,First);
 		_tcscpy(rest,Rest);
 		_tcscpy(full,Full);
@@ -468,6 +497,10 @@
 #ifndef __REACTOS__
 	SetConsoleTitle (szWindowTitle);
 #endif
+
+ free(first);
+ free(rest);
+ free(full);
 }