]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
mqtt: better handling of TCP disconnect mid-message
authorDaniel Stenberg <daniel@haxx.se>
Tue, 29 Mar 2022 06:43:13 +0000 (08:43 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 29 Mar 2022 06:43:14 +0000 (08:43 +0200)
Reported-by: Jenny Heino
Bug: https://hackerone.com/reports/1521610
Closes #8644

lib/mqtt.c

index e79bd3b48215825cd85133cd764bb2bd69739d31..9bcbaa1950a00b0203ffc9ddb969cab0ff0c4fda 100644 (file)
@@ -732,8 +732,14 @@ static CURLcode mqtt_doing(struct Curl_easy *data, bool *done)
   case MQTT_FIRST:
     /* Read the initial byte only */
     result = Curl_read(data, sockfd, (char *)&mq->firstbyte, 1, &nread);
-    if(!nread)
+    if(result)
+      break;
+    else if(!nread) {
+      failf(data, "Connection disconnected");
+      *done = TRUE;
+      result = CURLE_RECV_ERROR;
       break;
+    }
     Curl_debug(data, CURLINFO_HEADER_IN, (char *)&mq->firstbyte, 1);
     /* remember the first byte */
     mq->npacket = 0;