]> git.cameronkatri.com Git - pw-darwin.git/commitdiff
Endless loop.
authorWolfram Schneider <wosch@FreeBSD.org>
Mon, 29 Sep 1997 13:13:51 +0000 (13:13 +0000)
committerWolfram Schneider <wosch@FreeBSD.org>
Mon, 29 Sep 1997 13:13:51 +0000 (13:13 +0000)
$ vipw
[corrupt a line in editor, exit editor]
pwd_mkdb: corrupted entry
pwd_mkdb: at line #2
pwd_mkdb:
/etc/pw.012585: Inappropriate file type or format
re-edit the password file? [y]: n^D^D
[hang]

libutil/pw_util.c

index 6283b95bdcf1520ae800d4f9c121bc936401cbad..21e0ca5c7e058cec2364fddaf1eed07c9c7e0ca2 100644 (file)
@@ -202,14 +202,14 @@ pw_edit(notsetuid)
 void
 pw_prompt()
 {
-       int c;
+       int c, first;
 
        (void)printf("re-edit the password file? [y]: ");
        (void)fflush(stdout);
-       c = getchar();
-       if (c != EOF && c != '\n')
-               while (getchar() != '\n');
-       if (c == 'n')
+       first = c = getchar();
+       while (c != '\n' && c != EOF)
+               c = getchar();
+       if (first == 'n')
                pw_error(NULL, 0, 0);
 }