Browse Source

Patch from Axel Barnitzke <barney@xkontor.com> to fixup
a problem with getpass() echoing passwords...

Eric Andersen 22 years ago
parent
commit
cb64288cfe
1 changed files with 2 additions and 2 deletions
  1. 2 2
      libc/unistd/getpass.c

+ 2 - 2
libc/unistd/getpass.c

@@ -45,7 +45,7 @@ getpass (prompt)
   /* Try to write to and read from the terminal if we can.
      If we can't open the terminal, use stderr and stdin.  */
 
-  in = fopen ("/dev/tty", "w+");
+  in = fopen ("/dev/tty", "r+");
   if (in == NULL)
     {
       in = stdin;
@@ -61,7 +61,7 @@ getpass (prompt)
       /* Save the old one. */
       s = t;
       /* Tricky, tricky. */
-      t.c_lflag &= ~(ECHO|ISIG);
+      t.c_lflag &= ~(ECHO|ICANON|ISIG);
       tty_changed = (tcsetattr (fileno (in), TCSAFLUSH|TCSASOFT, &t) == 0);
     }
   else