]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
mqtt, remove remaining use of data->state.buffer
authorStefan Eissing <stefan@eissing.org>
Fri, 26 Jan 2024 08:21:37 +0000 (09:21 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Sat, 27 Jan 2024 11:42:19 +0000 (12:42 +0100)
Closes #12799

lib/mqtt.c
lib/mqtt.h

index 704ffaf60dde5cfe1dabf154ac4691ba0307fa4c..5a9d6d0f10aba92674146cea3a622a38290e779c 100644 (file)
@@ -745,7 +745,6 @@ static CURLcode mqtt_doing(struct Curl_easy *data, bool *done)
   struct MQTT *mq = data->req.p.mqtt;
   ssize_t nread;
   curl_socket_t sockfd = conn->sock[FIRSTSOCKET];
-  unsigned char *pkt = (unsigned char *)data->state.buffer;
   unsigned char byte;
 
   *done = FALSE;
@@ -783,7 +782,7 @@ static CURLcode mqtt_doing(struct Curl_easy *data, bool *done)
       if(!nread)
         break;
       Curl_debug(data, CURLINFO_HEADER_IN, (char *)&byte, 1);
-      pkt[mq->npacket++] = byte;
+      mq->pkt_hd[mq->npacket++] = byte;
     } while((byte & 0x80) && (mq->npacket < 4));
     if(nread && (byte & 0x80))
       /* MQTT supports up to 127 * 128^0 + 127 * 128^1 + 127 * 128^2 +
@@ -791,7 +790,7 @@ static CURLcode mqtt_doing(struct Curl_easy *data, bool *done)
       result = CURLE_WEIRD_SERVER_REPLY;
     if(result)
       break;
-    mq->remaining_length = mqtt_decode_len(&pkt[0], mq->npacket, NULL);
+    mq->remaining_length = mqtt_decode_len(mq->pkt_hd, mq->npacket, NULL);
     mq->npacket = 0;
     if(mq->remaining_length) {
       mqstate(data, mqtt->nextstate, MQTT_NOSTATE);
index 84f177022ebd3e538fa5bed1c0b445dc847cd797..99ab12a98a40577889db0f155a9ad56a2b11bcb6 100644 (file)
@@ -57,6 +57,7 @@ struct MQTT {
   unsigned char firstbyte;
   size_t remaining_length;
   struct dynbuf recvbuf;
+  unsigned char pkt_hd[4]; /* for decoding the arriving packet length */
 };
 
 #endif /* HEADER_CURL_MQTT_H */