]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
vipw: make tmp_file usage more robust [clang analyze]
authorKarel Zak <kzak@redhat.com>
Tue, 29 Mar 2016 11:23:32 +0000 (13:23 +0200)
committerKarel Zak <kzak@redhat.com>
Tue, 29 Mar 2016 11:23:32 +0000 (13:23 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
login-utils/vipw.c

index 0438656826cccae24814a0577c068b9fa7c21e51..2e343b6ea86da1cf0c6ee50681358030369be30c 100644 (file)
@@ -181,6 +181,7 @@ static void pw_write(void)
        }
        unlink(tmp_file);
        free(tmp_file);
+       tmp_file = NULL;
 }
 
 static void pw_edit(void)
@@ -233,7 +234,9 @@ pw_error(char *name, int err, int eval)
                        warn(NULL);
        }
        warnx(_("%s unchanged"), orig_file);
-       unlink(tmp_file);
+
+       if (tmp_file)
+               unlink(tmp_file);
        ulckpwdf();
        exit(eval);
 }
@@ -269,7 +272,7 @@ static void edit_file(int is_shadow)
                if (close_stream(tmp_fd) != 0)
                        err(EXIT_FAILURE, _("write error"));
                tmp_fd = fopen(tmp_file, "r");
-               if (!tmp_file)
+               if (!tmp_fd)
                        err(EXIT_FAILURE, _("cannot open %s"), tmp_file);
                if (fstat(fileno(tmp_fd), &end))
                        pw_error(tmp_file, 1, 1);