From d519519da0ef2359affd7af0f17b2c6a5c4358fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=80=92=E9=9C=89=E7=8B=90=E7=8B=B8?= Date: Fri, 15 Sep 2023 20:58:25 +0800 Subject: [PATCH] =?UTF-8?q?TopicAlias=200=20=E9=94=99=E8=AF=AF=E7=A0=81?= =?UTF-8?q?=E5=BA=94=E5=BD=93=E4=B8=BA0x94=20(#198)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/packets/properties.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkg/packets/properties.go b/pkg/packets/properties.go index 5b6a4b04..548a96d5 100644 --- a/pkg/packets/properties.go +++ b/pkg/packets/properties.go @@ -412,9 +412,10 @@ func (p *Properties) Unpack(bufr *bytes.Buffer, packetType byte) error { case PropTopicAliasMaximum: p.TopicAliasMaximum, err = propertyReadUint16(p.TopicAliasMaximum, newBufr, propType, nil) case PropTopicAlias: - p.TopicAlias, err = propertyReadUint16(p.TopicAlias, newBufr, propType, func(u uint16) bool { - return u != 0 // [MQTT-3.3.2-8] - }) + p.TopicAlias, err = propertyReadUint16(p.TopicAlias, newBufr, propType, nil) + if p.TopicAlias != nil && *p.TopicAlias == 0 { + err = codes.NewError(codes.TopicAliasInvalid) + } case PropMaximumQoS: p.MaximumQoS, err = propertyReadBool(p.MaximumQoS, newBufr, propType) case PropRetainAvailable: