diff options
author | Todd C. Miller <millert@cvs.openbsd.org> | 1997-11-17 21:12:13 +0000 |
---|---|---|
committer | Todd C. Miller <millert@cvs.openbsd.org> | 1997-11-17 21:12:13 +0000 |
commit | 1311c19cf53345ff599fa0f20166c365dd1eb8ce (patch) | |
tree | 30070dfc56d33ec268ca6867a9fdfa168df7b1a6 /lib/libutil | |
parent | a2d206028623dd43603128c069c46ed0b593f91b (diff) |
pw_mkdb() now returns -1 if ptmp is size 0.
Diffstat (limited to 'lib/libutil')
-rw-r--r-- | lib/libutil/passwd.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/libutil/passwd.c b/lib/libutil/passwd.c index 83c5c8d6614..b1128ae3994 100644 --- a/lib/libutil/passwd.c +++ b/lib/libutil/passwd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: passwd.c,v 1.13 1997/11/17 20:56:57 millert Exp $ */ +/* $OpenBSD: passwd.c,v 1.14 1997/11/17 21:12:12 millert Exp $ */ /* * Copyright (c) 1987, 1993, 1994, 1995 @@ -34,7 +34,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static char rcsid[] = "$OpenBSD: passwd.c,v 1.13 1997/11/17 20:56:57 millert Exp $"; +static char rcsid[] = "$OpenBSD: passwd.c,v 1.14 1997/11/17 21:12:12 millert Exp $"; #endif /* LIBC_SCCS and not lint */ #include <sys/types.h> @@ -270,6 +270,15 @@ pw_mkdb() int pstat; pid_t pid; char *lock; + struct stat sb; + + /* A zero length passwd file is never ok */ + if (pw_lck && stat(pw_lck, &sb) == 0) { + if (sb.st_size == 0) { + warnx("%s is zero length", pw_lck); + return (-1); + } + } pid = vfork(); if (pid == 0) { |