From 9efa5799f00c55c2215c2d9af9242b91611dc718 Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Fri, 22 Nov 2013 18:27:24 +0100 Subject: reqs: Fix CID 1130968 - unchecked return value from library Check the return code of fcntl via socket_nonblocking in pull_client_data() Found by coverity. Signed-off-by: Michael Adam --- src/reqs.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/reqs.c b/src/reqs.c index 5144a12..fcf1f09 100644 --- a/src/reqs.c +++ b/src/reqs.c @@ -500,6 +500,7 @@ static int pull_client_data (struct conn_s *connptr, long int length) { char *buffer; ssize_t len; + int ret; buffer = (char *) safemalloc (min (MAXBUFFSIZE, (unsigned long int) length)); @@ -525,7 +526,13 @@ static int pull_client_data (struct conn_s *connptr, long int length) * return and line feed) at the end of a POST message. These * need to be eaten for tinyproxy to work correctly. */ - socket_nonblocking (connptr->client_fd); + ret = socket_nonblocking (connptr->client_fd); + if (ret != 0) { + log_message(LOG_ERR, "Failed to set the client socket " + "to non-blocking: %s", strerror(errno)); + goto ERROR_EXIT; + } + len = recv (connptr->client_fd, buffer, 2, MSG_PEEK); socket_blocking (connptr->client_fd); -- cgit v1.2.3