mirror of
https://github.com/reactos/reactos.git
synced 2026-05-22 15:20:29 +08:00
[CMD] Fix GCC 13 use-after-free warning
Make the code simpler, so GCC doesn't get confused.
C:/ReactOS/reactos/base/shell/cmd/misc.c: In function 'add_entry':
C:/ReactOS/reactos/base/shell/cmd/misc.c:216:14: error: pointer 'oldarg' may be used after 'realloc' [-Werror=use-after-free]
216 | *arg = oldarg;
| ~~~~~^~~~~~~~
In file included from C:/ReactOS/reactos/base/shell/cmd/cmd.h:29,
from C:/ReactOS/reactos/base/shell/cmd/precomp.h:34,
from C:/ReactOS/reactos/base/shell/cmd/misc.c:35:
C:/ReactOS/reactos/base/shell/cmd/cmddbg.h:30:31: note: call to 'realloc' here
30 | #define cmd_realloc(ptr,size) realloc(ptr, size)
| ^~~~~~~~~~~~~~~~~~
C:/ReactOS/reactos/base/shell/cmd/misc.c:212:12: note: in expansion of macro 'cmd_realloc'
212 | *arg = cmd_realloc (oldarg, (*ac + 2) * sizeof (LPTSTR));
| ^~~~~~~~~~~
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user