Fixed the allocation of some buffers in Execute. 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-10 15:18:42 UTC (rev 17777) +++ trunk/reactos/subsys/system/cmd/cmd.c 2005-09-10 15:20:10 UTC (rev 17778) @@ -299,6 +299,7 @@
TCHAR *first = NULL; TCHAR *rest = NULL; TCHAR *full = NULL; + TCHAR *dot = NULL; TCHAR szWindowTitle[MAX_PATH]; DWORD dwExitCode = 0;
@@ -310,14 +311,14 @@ need rewrite some code to use realloc when it need instead of add 512bytes extra */
- first = malloc ( _tcslen(First) + 512 * sizeof(TCHAR)); + first = malloc ( (_tcslen(First) + 512) * sizeof(TCHAR)); if (first == NULL) { error_out_of_memory(); return ; }
- rest = malloc ( _tcslen(Rest) + 512 * sizeof(TCHAR)); + rest = malloc ( (_tcslen(Rest) + 512) * sizeof(TCHAR)); if (rest == NULL) { free (full); @@ -325,7 +326,7 @@ return ; }
- full = malloc ( _tcslen(Full) + 512 * sizeof(TCHAR)); + full = malloc ( (_tcslen(Full) + 512) * sizeof(TCHAR)); if (full == NULL) { free (full); @@ -411,8 +412,8 @@ GetConsoleTitle (szWindowTitle, MAX_PATH);
/* check if this is a .BAT or .CMD file */ - if (!_tcsicmp (_tcsrchr (szFullName, _T('.')), _T(".bat")) || - !_tcsicmp (_tcsrchr (szFullName, _T('.')), _T(".cmd"))) + dot = _tcsrchr (szFullName, _T('.')); + if (dot && (!_tcsicmp (dot, _T(".bat")) || !_tcsicmp (dot, _T(".cmd")))) { #ifdef _DEBUG DebugPrintf (_T("[BATCH: %s %s]\n"), szFullName, rest);