From e2ab156fa297f59bdde5b06c031b0f564b198973 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Mon, 11 May 2026 15:36:08 +0200 Subject: [PATCH] BUG/MINOR: mqtt: connack parser uses wrong bit for SUBSCRIPTION_IDENTIFIERS_AVAILABLE In mqtt_parse_connack(), the MQTT_PROP_SUBSCRIPTION_IDENTIFIERS_AVAILABLE case was checking and setting MQTT_FN_BIT_SUBSCRIPTION_IDENTIFIER instead of MQTT_FN_BIT_SUBSCRIPTION_IDENTIFIERS_AVAILABLE, due to a copy-paste mistake. This can be backported where needed. --- src/mqtt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mqtt.c b/src/mqtt.c index 772d683c4..97839eed7 100644 --- a/src/mqtt.c +++ b/src/mqtt.c @@ -1127,13 +1127,13 @@ static int mqtt_parse_connack(struct ist parser, struct mqtt_pkt *mpkt) break; case MQTT_PROP_SUBSCRIPTION_IDENTIFIERS_AVAILABLE: - if (fields & MQTT_FN_BIT_SUBSCRIPTION_IDENTIFIER) + if (fields & MQTT_FN_BIT_SUBSCRIPTION_IDENTIFIERS_AVAILABLE) goto end; props = mqtt_read_1byte_int(istnext(props), &mpkt->data.connack.var_hdr.props.subscription_identifiers_available); /* can have only 2 values: 0 or 1 */ if (mpkt->data.connack.var_hdr.props.subscription_identifiers_available > 1) goto end; - fields |= MQTT_FN_BIT_SUBSCRIPTION_IDENTIFIER; + fields |= MQTT_FN_BIT_SUBSCRIPTION_IDENTIFIERS_AVAILABLE; break; case MQTT_PROP_SHARED_SUBSRIPTION_AVAILABLE: -- 2.47.3