From 842f4fbf13f223c45dde565ae40ae8dad4637517 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E5=AD=90=E5=8D=9A?= <349832309@qq.com> Date: Tue, 4 Sep 2018 11:16:15 +0800 Subject: [PATCH] Crash when reserved flag in CONNECT packet doesn't equal to 0, and remove repeated check for protocol version --- src/emqx_frame.erl | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/emqx_frame.erl b/src/emqx_frame.erl index 3ec935020..ab43fb58c 100644 --- a/src/emqx_frame.erl +++ b/src/emqx_frame.erl @@ -120,19 +120,17 @@ wrap(Header, Rest) -> parse_packet(#mqtt_packet_header{type = ?CONNECT}, FrameBin, _Options) -> {ProtoName, Rest} = parse_utf8_string(FrameBin), <> = Rest, + % Note: Crash when reserved flag doesn't equal to 0, there is no strict compliance with the MQTT5.0. <> = Rest1, - case protocol_approved(ProtoVer, ProtoName) of - true -> ok; - false -> error(protocol_name_unapproved) - end, + {Properties, Rest3} = parse_properties(Rest2, ProtoVer), {ClientId, Rest4} = parse_utf8_string(Rest3), ConnPacket = #mqtt_packet_connect{proto_name = ProtoName,