From 3a6e37c6443111a40dd0eb299fdfa2fddc197618 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Wed, 5 Oct 2016 20:11:13 +0200 Subject: vis: check return value of fcntl(2) call --- vis.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/vis.c b/vis.c index 294dd63..085681e 100644 --- a/vis.c +++ b/vis.c @@ -1312,9 +1312,9 @@ int vis_pipe(Vis *vis, Filerange *range, bool interactive, const char *argv[], close(pout[1]); close(perr[1]); - fcntl(pout[0], F_SETFL, O_NONBLOCK); - fcntl(perr[0], F_SETFL, O_NONBLOCK); - + if (fcntl(pout[0], F_SETFL, O_NONBLOCK) == -1 || + fcntl(perr[0], F_SETFL, O_NONBLOCK) == -1) + goto err; fd_set rfds, wfds; @@ -1393,6 +1393,7 @@ int vis_pipe(Vis *vis, Filerange *range, bool interactive, const char *argv[], } while (pin[1] != -1 || pout[0] != -1 || perr[0] != -1); +err: if (pin[1] != -1) close(pin[1]); if (pout[0] != -1) -- cgit v1.2.3