Client.getPass: catch syserror inval when detecting non-tty use
authorClinton Ebadi <clinton@unknownlamer.org>
Sun, 5 Oct 2014 00:48:39 +0000 (20:48 -0400)
committerClinton Ebadi <clinton@unknownlamer.org>
Sun, 5 Oct 2014 00:48:39 +0000 (20:48 -0400)
libc in Debian before Jessie returns einval instead of enotty

src/client.sml

index 00000e7..0c4112f 100644 (file)
@@ -30,7 +30,7 @@ fun getpass () =
        val tty = Posix.FileSys.stdin
        val termios = SOME (Posix.TTY.TC.getattr tty)
                      handle OS.SysErr (reason, SOME syserr) =>
-                            if syserr = Posix.Error.notty then
+                            if syserr = Posix.Error.notty orelse syserr = Posix.Error.inval then
                                 (print "Warning: no terminal found, not hiding password\n";
                                  TextIO.flushOut TextIO.stdOut;
                                  NONE)