From f7852e5be4a5733e1d6f945d2c3ffcefedd447c5 Mon Sep 17 00:00:00 2001 From: "Roger A. Light" Date: Fri, 28 Nov 2025 00:49:48 +0000 Subject: [PATCH] read_header is only ever called when all data has been read This means setting everything back to 0 is the correct approach --- lib/packet_mosq.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/packet_mosq.c b/lib/packet_mosq.c index b2c5045e..c1587cc9 100644 --- a/lib/packet_mosq.c +++ b/lib/packet_mosq.c @@ -365,7 +365,9 @@ static int read_header(struct mosquitto *mosq, ssize_t (*func_read)(struct mosqu { ssize_t read_length; - read_length = func_read(mosq, &mosq->in_packet.packet_buffer[mosq->in_packet.packet_buffer_pos], mosq->in_packet.packet_buffer_size-mosq->in_packet.packet_buffer_pos); + mosq->in_packet.packet_buffer_pos = 0; + mosq->in_packet.packet_buffer_to_process = 0; + read_length = func_read(mosq, mosq->in_packet.packet_buffer, mosq->in_packet.packet_buffer_size); if(read_length > 0){ mosq->in_packet.packet_buffer_to_process = (uint16_t)read_length; #ifdef WITH_BROKER