From 57878f3b5cf9048e844282e757972e9896180fa4 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Mon, 11 May 2026 15:34:15 +0200 Subject: [PATCH] BUG/MINOR: mqtt: connect parser uses wrong bit field for TOPIC_ALIAS_MAXIMUM In mqtt_parse_connect(), the MQTT_PROP_TOPIC_ALIAS_MAXIMUM case was checking and setting MQTT_FN_BIT_TOPIC_ALIAS instead of MQTT_FN_BIT_TOPIC_ALIAS_MAXIMUM. This means duplicate detection for Topic-Alias-Maximum property was using the wrong bitmask, and the actual Topic-Alias-Maximum bit was never set, making duplicate detection ineffective for this property. The CONNACK parser already had this correct. --- src/mqtt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mqtt.c b/src/mqtt.c index 9ff977ef6..772d683c4 100644 --- a/src/mqtt.c +++ b/src/mqtt.c @@ -789,10 +789,10 @@ static int mqtt_parse_connect(struct ist parser, struct mqtt_pkt *mpkt) break; case MQTT_PROP_TOPIC_ALIAS_MAXIMUM: - if (fields & MQTT_FN_BIT_TOPIC_ALIAS) + if (fields & MQTT_FN_BIT_TOPIC_ALIAS_MAXIMUM) goto end; props = mqtt_read_2byte_int(istnext(props), &mpkt->data.connect.var_hdr.props.topic_alias_maximum); - fields |= MQTT_FN_BIT_TOPIC_ALIAS; + fields |= MQTT_FN_BIT_TOPIC_ALIAS_MAXIMUM; break; case MQTT_PROP_REQUEST_RESPONSE_INFORMATION: -- 2.47.3