diff options
author | Christian Grothoff <christian@grothoff.org> | 2017-10-06 21:06:47 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2017-10-06 21:06:47 +0200 |
commit | 800c54b19e9dd705a18e39e090d6227614b34f58 (patch) | |
tree | db0386f995259f92f473b5982e6c36449065c636 | |
parent | 06f5621fbac43c59b15fa4ef9e0fe92b828cec5b (diff) | |
download | exchange-800c54b19e9dd705a18e39e090d6227614b34f58.tar.xz |
do not potentially pass -1 to fcntl()
-rw-r--r-- | src/exchange/taler-exchange-httpd.c | 37 |
1 files changed, 27 insertions, 10 deletions
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"); } |