]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
openssl: fix "Improper use of negative value"
authorDaniel Stenberg <daniel@haxx.se>
Mon, 6 Feb 2023 16:52:44 +0000 (17:52 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 6 Feb 2023 22:40:20 +0000 (23:40 +0100)
By getting the socket first and returning error in case of bad socket.

Detected by Coverity.

Closes #10423

lib/vtls/openssl.c

index b56fe30d4993907710ea9ee5e4b288baa758b487..84621ff1eb6fbb75e9d9e961f51a7af5c8bf1a81 100644 (file)
@@ -1814,7 +1814,10 @@ static int ossl_check_cxn(struct Curl_cfilter *cf, struct Curl_easy *data)
 #ifdef MSG_PEEK
   char buf;
   ssize_t nread;
-  nread = recv((RECV_TYPE_ARG1)Curl_conn_cf_get_socket(cf, data),
+  curl_socket_t sock = Curl_conn_cf_get_socket(cf, data);
+  if(sock == CURL_SOCKET_BAD)
+    return 0; /* no socket, consider closed */
+  nread = recv((RECV_TYPE_ARG1)sock,
                (RECV_TYPE_ARG2)&buf, (RECV_TYPE_ARG3)1,
                (RECV_TYPE_ARG4)MSG_PEEK);
   if(nread == 0)