From 800c54b19e9dd705a18e39e090d6227614b34f58 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Fri, 6 Oct 2017 21:06:47 +0200 Subject: do not potentially pass -1 to fcntl() --- src/exchange/taler-exchange-httpd.c | 37 +++++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) (limited to 'src/exchange/taler-exchange-httpd.c') diff --git a/src/exchange/taler-exchange-httpd.c b/src/exchange/taler-exchange-httpd.c index 60b781032..0f8740879 100644 --- a/src/exchange/taler-exchange-httpd.c +++ b/src/exchange/taler-exchange-httpd.c @@ -1015,37 +1015,54 @@ main (int argc, listen_fds = getenv ("LISTEN_FDS"); if ( (NULL != listen_pid) && (NULL != listen_fds) && - (getpid() == strtol (listen_pid, NULL, 10)) && - ( (1 == strtoul (listen_fds, NULL, 10)) || - (2 == strtoul (listen_fds, NULL, 10)) ) ) + (getpid() == strtol (listen_pid, + NULL, + 10)) && + ( (1 == strtoul (listen_fds, + NULL, + 10)) || + (2 == strtoul (listen_fds, + NULL, + 10)) ) ) { int flags; fh = 3; - flags = fcntl (fh, F_GETFD); - if ( (-1 == flags) && (EBADF == errno) ) + flags = fcntl (fh, + F_GETFD); + if ( (-1 == flags) && + (EBADF == errno) ) { fprintf (stderr, "Bad listen socket passed, ignored\n"); fh = -1; } flags |= FD_CLOEXEC; - if (0 != fcntl (fh, F_SETFD, flags)) + if ( (-1 != fh) && + (0 != fcntl (fh, + F_SETFD, + flags)) ) GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, "fcntl"); - if (2 == strtoul (listen_fds, NULL, 10)) + if (2 == strtoul (listen_fds, + NULL, + 10)) { fh_admin = 4; - flags = fcntl (fh_admin, F_GETFD); - if ( (-1 == flags) && (EBADF == errno) ) + flags = fcntl (fh_admin, + F_GETFD); + if ( (-1 == flags) && + (EBADF == errno) ) { fprintf (stderr, "Bad listen socket passed, ignored\n"); fh_admin = -1; } flags |= FD_CLOEXEC; - if (0 != fcntl (fh_admin, F_SETFD, flags)) + if (0 != fcntl (fh_admin, + F_SETFD, + flags)) GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, "fcntl"); } -- cgit v1.2.3