Found by cppcheck: [app/iceauth/process.c:302]: (error) Common realloc mistake: 'argv' nulled but not freed upon failure
Signed-off-by: Alan Coopersmith <[email protected]> --- process.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/process.c b/process.c index 09cb7ef..6f7396d 100644 --- a/process.c +++ b/process.c @@ -298,9 +298,13 @@ static char **split_into_words ( /* argvify string */ savec = *src; *src = '\0'; if (cur == total) { + char **prevargv = argv; total += WORDSTOALLOC; argv = (char **) realloc (argv, total * sizeof (char *)); - if (!argv) return NULL; + if (!argv) { + free (prevargv); + return NULL; + } } argv[cur++] = jword; if (savec) src++; /* if not last on line advance */ -- 1.7.9.2 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
