Sulogin: if zero is read at reading the passwd guess it's done.
authorDr. Werner Fink <werner@suse.de>
Tue, 26 Jul 2011 12:03:13 +0000 (12:03 +0000)
committerDr. Werner Fink <werner@suse.de>
Tue, 26 Jul 2011 12:03:13 +0000 (12:03 +0000)
git-svn-id: svn://svn.sv.gnu.org/sysvinit/sysvinit/trunk@108 456724a4-4300-0410-8514-c89748c515a2

doc/Changelog
src/sulogin.c

index dc99219899ce0970f1d711b4a4578ffd5d1e51c0..435e6246a7141981d913124381b306b5b1ef3a7b 100644 (file)
@@ -30,6 +30,7 @@ sysvinit (2.89dsf) UNRELEASED; urgency=low
   * Make quotes visible in example of the manual page of fstab-decode
   * Sulogin: enforce reconnection of stdin/stdout/stderr if a device
     was specified.
+  * Sulogin: if zero is read at reading the passwd guess it's done.
 
   [ Petter Reinholdtsen ]
   * Next release will be 2.89dsf.
index b1bd75aac907fdbf09d5cc06cbdf8f1348a605da..70fa3348a44195d477d07c0986f90aa87fd5cd5f 100644 (file)
@@ -636,7 +636,7 @@ char *getpasswd(struct console *con)
        cp->eol = *ptr = '\0';
 
        eightbit = ((con->flags & CON_SERIAL) == 0 || (tty.c_cflag & (PARODD|PARENB)) == 0);
-       while (cp->eol == 0) {
+       while (cp->eol == '\0') {
                if (read(fd, &c, 1) < 1) {
                        if (errno == EINTR || errno == EAGAIN) {
                                usleep(1000);
@@ -669,6 +669,9 @@ char *getpasswd(struct console *con)
                }
 
                switch (ascval) {
+               case 0:
+                       *ptr = '\0';
+                       goto quit; 
                case CR:
                case NL:
                        *ptr = '\0';