diff options
author | guido <guido@FreeBSD.org> | 1998-02-15 22:31:40 +0000 |
---|---|---|
committer | guido <guido@FreeBSD.org> | 1998-02-15 22:31:40 +0000 |
commit | bfe224349b6e7673bc149ec06c50aadf048a3e91 (patch) | |
tree | 938dd5c3cbfde6a6da0f3d91f089fe075940ad71 /usr.sbin/pwd_mkdb | |
parent | b5aaf93a530e1426fc8bdc33ece5317b2b551704 (diff) | |
download | FreeBSD-src-bfe224349b6e7673bc149ec06c50aadf048a3e91.zip FreeBSD-src-bfe224349b6e7673bc149ec06c50aadf048a3e91.tar.gz |
Check return values of fprintf, fclose (this one is overdone I guess)
and pw_db->close.
PR: 4202 (probably, I askd the submitter)
Obtained from: OpenBSD
Diffstat (limited to 'usr.sbin/pwd_mkdb')
-rw-r--r-- | usr.sbin/pwd_mkdb/pwd_mkdb.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/usr.sbin/pwd_mkdb/pwd_mkdb.c b/usr.sbin/pwd_mkdb/pwd_mkdb.c index 9d8bf63..61217eb 100644 --- a/usr.sbin/pwd_mkdb/pwd_mkdb.c +++ b/usr.sbin/pwd_mkdb/pwd_mkdb.c @@ -42,7 +42,7 @@ static const char copyright[] = static char sccsid[] = "@(#)pwd_mkdb.c 8.5 (Berkeley) 4/20/94"; #endif static const char rcsid[] = - "$Id: pwd_mkdb.c,v 1.20 1997/10/10 06:27:07 charnier Exp $"; + "$Id: pwd_mkdb.c,v 1.21 1998/01/10 17:27:28 wosch Exp $"; #endif /* not lint */ #include <sys/param.h> @@ -227,7 +227,8 @@ main(argc, argv) } else { methoduid = R_NOOVERWRITE; } - (void)(pw_db->close)(pw_db); + if ((pw_db->close)(pw_db)) + error("close pw_db"); method = 0; } else { dp = dbopen(buf, @@ -383,7 +384,8 @@ main(argc, argv) } /* Create original format password file entry */ if (Cflag && makeold) /* copy comments */ - (void)fprintf(oldfp, "%s\n", line); + if (fprintf(oldfp, "%s\n", line) == EOF) + error("write old"); else if (makeold) { char uidstr[20]; char gidstr[20]; @@ -391,10 +393,11 @@ main(argc, argv) snprintf(uidstr, sizeof(uidstr), "%d", pwd.pw_uid); snprintf(gidstr, sizeof(gidstr), "%d", pwd.pw_gid); - (void)fprintf(oldfp, "%s:*:%s:%s:%s:%s:%s\n", + if (fprintf(oldfp, "%s:*:%s:%s:%s:%s:%s\n", pwd.pw_name, pwd.pw_fields & _PWF_UID ? uidstr : "", pwd.pw_fields & _PWF_GID ? gidstr : "", - pwd.pw_gecos, pwd.pw_dir, pwd.pw_shell); + pwd.pw_gecos, pwd.pw_dir, pwd.pw_shell) == EOF) + error("write old"); } } /* If YP enabled, set flag. */ @@ -415,12 +418,14 @@ main(argc, argv) error("close"); if (makeold) { (void)fflush(oldfp); - (void)fclose(oldfp); + if (fclose(oldfp) == EOF) + error("close old"); } /* Set master.passwd permissions, in case caller forgot. */ (void)fchmod(fileno(fp), S_IRUSR|S_IWUSR); - (void)fclose(fp); + if (fclose(fp) == EOF) + error("close fp"); /* Install as the real password files. */ (void)snprintf(buf, sizeof(buf), "%s/%s.tmp", prefix, _MP_DB); |