netcat: avoid issuing syscalls on fd -1
authortb <tb@openbsd.org>
Mon, 14 Aug 2023 08:07:27 +0000 (08:07 +0000)
committertb <tb@openbsd.org>
Mon, 14 Aug 2023 08:07:27 +0000 (08:07 +0000)
commit03fa76f835e0954845b206c6f0cadf39975ba82c
treea9c010c52d2771d40313451fcfb7498ea2ffc24a
parentabbd98eac20dc6a00c56b71aeec2ac32f8e8f95a
netcat: avoid issuing syscalls on fd -1

In case a socket error condition occurs, readwrite() invalidates the
corresponding fd. Later on, readwrite() may still issue a syscall on
it. Avoid that by adding a couple of checks for fd == -1.

Reported and fix suggested by Leah Neukirchen.
Fixes https://github.com/libressl/openbsd/issues/143

"looks right" deraadt
usr.bin/nc/netcat.c