crypto/ui/ui_openssl.c: make sure to recognise ENXIO and EIO too

These both indicate that the file descriptor we're trying to use as a
terminal isn't, in fact, a terminal.

Fixes #7271

Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
(Merged from https://github.com/openssl/openssl/pull/7272)
This commit is contained in:
Richard Levitte 2018-09-19 21:33:45 +02:00
parent 2340ed277b
commit 276bf8620c

View file

@ -415,6 +415,24 @@ static int open_console(UI *ui)
is_a_tty = 0; is_a_tty = 0;
else else
# endif # endif
# ifdef ENXIO
/*
* Solaris can return ENXIO.
* This should be ok
*/
if (errno == ENXIO)
is_a_tty = 0;
else
# endif
# ifdef EIO
/*
* Linux can return EIO.
* This should be ok
*/
if (errno == EIO)
is_a_tty = 0;
else
# endif
# ifdef ENODEV # ifdef ENODEV
/* /*
* MacOS X returns ENODEV (Operation not supported by device), * MacOS X returns ENODEV (Operation not supported by device),