From: Willy Tarreau Date: Mon, 11 May 2026 13:34:15 +0000 (+0200) Subject: BUG/MINOR: mqtt: connect parser uses wrong bit field for TOPIC_ALIAS_MAXIMUM X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=57878f3b5cf9048e844282e757972e9896180fa4;p=haproxy.git 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. --- 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: