Stop playing hopeless games with FIONBIO.
authorschwarze <schwarze@openbsd.org>
Thu, 12 Aug 2021 10:31:15 +0000 (10:31 +0000)
committerschwarze <schwarze@openbsd.org>
Thu, 12 Aug 2021 10:31:15 +0000 (10:31 +0000)
commit029afef8459eec855156b51de0a6b35a08280fb0
treea4fb19c69d1298dd14115bceae12494d84c47cdc
parent51a02d25af355d4e819e8c97481adb2cf17ab975
Stop playing hopeless games with FIONBIO.

If the calling program sets this flag, that is (1) either a bug
(or at least needless) (2) or clearing it in el_wgets(3) will break
other functionality of the calling program if it really requires it.
In both cases, treating EAGAIN as a fatal error in el_wgets(3) is
better than brushing the issue under the carpet: at least it tells
the program author that something is amiss.

Instead of attempting automatic repairs that will almost never do
the right thing, clearly state in the manual page that the editline(3)
library is not designed to work with non-blocking I/O.

The problem was found while investigating a bug report
from deraadt@ in sftp(1).
OK millert@ and "mostly OK" martijn@
lib/libedit/editline.3
lib/libedit/read.c