From: Karel Zak Date: Tue, 29 Mar 2016 11:23:32 +0000 (+0200) Subject: vipw: make tmp_file usage more robust [clang analyze] X-Git-Tag: v2.28~31 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=76839e9794e2841bce6a6c3a5a91e02f4918e646;p=thirdparty%2Futil-linux.git vipw: make tmp_file usage more robust [clang analyze] Signed-off-by: Karel Zak --- diff --git a/login-utils/vipw.c b/login-utils/vipw.c index 0438656826..2e343b6ea8 100644 --- a/login-utils/vipw.c +++ b/login-utils/vipw.c @@ -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);