diff --git a/base/shell/cmd/misc.c b/base/shell/cmd/misc.c index 1386cf57e93..8b5753f7b14 100644 --- a/base/shell/cmd/misc.c +++ b/base/shell/cmd/misc.c @@ -198,7 +198,7 @@ BOOL CheckCtrlBreak(INT mode) BOOL add_entry (LPINT ac, LPTSTR **arg, LPCTSTR entry) { LPTSTR q; - LPTSTR *oldarg; + LPTSTR *newarg; q = cmd_alloc ((_tcslen(entry) + 1) * sizeof (TCHAR)); if (!q) @@ -208,16 +208,16 @@ BOOL add_entry (LPINT ac, LPTSTR **arg, LPCTSTR entry) } _tcscpy (q, entry); - oldarg = *arg; - *arg = cmd_realloc (oldarg, (*ac + 2) * sizeof (LPTSTR)); - if (!*arg) + newarg = cmd_realloc (*arg, (*ac + 2) * sizeof (LPTSTR)); + if (!newarg) { WARN("Cannot reallocate memory for arg!\n"); - *arg = oldarg; cmd_free (q); return FALSE; } + *arg = newarg; + /* save new entry */ (*arg)[*ac] = q; (*arg)[++(*ac)] = NULL;