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

Reply via email to