From d750726d04f695d77d1a0fd1a919fe8da07648fa Mon Sep 17 00:00:00 2001 From: ryancw <1831931681@qq.com> Date: Thu, 23 Oct 2025 09:41:02 +0800 Subject: [PATCH] fix: support zero-length clientId --- source/core_mqtt_serializer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/core_mqtt_serializer.c b/source/core_mqtt_serializer.c index 729817629..b54c6a4d6 100644 --- a/source/core_mqtt_serializer.c +++ b/source/core_mqtt_serializer.c @@ -1706,9 +1706,9 @@ MQTTStatus_t MQTT_GetConnectPacketSize( const MQTTConnectInfo_t * pConnectInfo, ( void * ) pPacketSize ) ); status = MQTTBadParameter; } - else if( ( pConnectInfo->clientIdentifierLength == 0U ) || ( pConnectInfo->pClientIdentifier == NULL ) ) + else if( ( ( pConnectInfo->clientIdentifierLength == 0U ) || ( pConnectInfo->pClientIdentifier == NULL ) ) && ( pConnectInfo->cleanSession == false ) ) { - LogError( ( "Mqtt_GetConnectPacketSize() client identifier must be set." ) ); + LogError( ( "Zero-length client identifier requires cleanSession=true per MQTT 3.1.1." ) ); status = MQTTBadParameter; } else if( ( pWillInfo != NULL ) && ( pWillInfo->payloadLength > ( size_t ) UINT16_MAX ) )