vfork w/ exit botch
authorderaadt <deraadt@openbsd.org>
Fri, 6 Dec 1996 01:54:58 +0000 (01:54 +0000)
committerderaadt <deraadt@openbsd.org>
Fri, 6 Dec 1996 01:54:58 +0000 (01:54 +0000)
lib/libutil/passwd.c
libexec/rpc.yppasswdd/yppasswdd_mkpw.c

index 8df9b38..a982a94 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: passwd.c,v 1.4 1996/06/19 12:36:01 deraadt Exp $      */
+/*     $OpenBSD: passwd.c,v 1.5 1996/12/06 01:55:33 deraadt Exp $      */
 /*
  * Copyright (c) 1987, 1993, 1994, 1995
  *     The Regents of the University of California.  All rights reserved.
@@ -86,7 +86,7 @@ pw_mkdb()
        if (pid == 0) {
                execl(_PATH_PWD_MKDB, "pwd_mkdb", "-p",
                      _PATH_MASTERPASSWD_LOCK, NULL);
-               exit(1);
+               _exit(1);
        }
        pid = waitpid(pid, &pstat, 0);
        if (pid == -1 || !WIFEXITED(pstat) || WEXITSTATUS(pstat) != 0)
index 08ba145..62345eb 100644 (file)
@@ -30,7 +30,7 @@
  */
 
 #ifndef LINT
-static char rcsid[] = "$Id: yppasswdd_mkpw.c,v 1.8 1996/08/31 13:54:13 deraadt Exp $";
+static char rcsid[] = "$Id: yppasswdd_mkpw.c,v 1.9 1996/12/06 01:54:58 deraadt Exp $";
 #endif
 
 #include <sys/types.h>
@@ -143,7 +143,10 @@ do_mkdb()
        (void)fflush(stdout);
        if (!(pid = vfork())) {
                execl(_PATH_PWD_MKDB, "pwd_mkdb", "-p", tempname, NULL);
-               pw_error(_PATH_PWD_MKDB, 1, 1);
+               warn(_PATH_PWD_MKDB);
+               warnx("%s: unchanged", _PATH_MASTERPASSWD);
+               pw_abort();
+               _exit(1);
        }
        pid = waitpid(pid, &pstat, 0);
        if (pid == -1 || !WIFEXITED(pstat) || WEXITSTATUS(pstat) != 0)