diff options
author | Sami Kerola | 2012-04-04 19:58:34 +0200 |
---|---|---|
committer | Sami Kerola | 2012-04-04 19:58:34 +0200 |
commit | 439cdf1e2475d2f6622c151419f90c7da6de1434 (patch) | |
tree | c7e0fac0bef7831d7603fd95e8ff30cc805843da /login-utils/vipw.c | |
parent | misc-utils: verify writing to streams was successful (diff) | |
download | kernel-qcow2-util-linux-439cdf1e2475d2f6622c151419f90c7da6de1434.tar.gz kernel-qcow2-util-linux-439cdf1e2475d2f6622c151419f90c7da6de1434.tar.xz kernel-qcow2-util-linux-439cdf1e2475d2f6622c151419f90c7da6de1434.zip |
login-utils: verify writing to streams was successful
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Diffstat (limited to 'login-utils/vipw.c')
-rw-r--r-- | login-utils/vipw.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/login-utils/vipw.c b/login-utils/vipw.c index 29e485cc4..2d16999d2 100644 --- a/login-utils/vipw.c +++ b/login-utils/vipw.c @@ -72,7 +72,7 @@ #include <unistd.h> #include "c.h" -#include "fileutils.h" +#include "closestream.h" #include "nls.h" #include "setpwnam.h" #include "strutils.h" @@ -283,7 +283,8 @@ static void edit_file(int is_shadow) ch_ret = fchmod(fileno(tmp_fd), 0400); if (ch_ret < 0) err(EXIT_FAILURE, "%s: %s", _("cannot chmod file"), orig_file); - fclose(tmp_fd); + if (close_stream(tmp_fd) != 0) + err(EXIT_FAILURE, _("write error")); pw_write(); close(passwd_file); ulckpwdf(); @@ -294,6 +295,7 @@ int main(int argc, char *argv[]) setlocale(LC_ALL, ""); bindtextdomain(PACKAGE, LOCALEDIR); textdomain(PACKAGE); + atexit(close_stdout); if (!strcmp(program_invocation_short_name, "vigr")) { program = VIGR; |