@@ -1274,6 +1274,53 @@ testParseError('Will QoS must be set to zero when Will Flag is set to 0', Buffer
12741274 0 , 30 // Keepalive
12751275] ) )
12761276
1277+ // CONNECT, SUBSCRIBE, SUBACK, UNSUBSCRIBE, UNSUBACK (v.5) packets must have payload
1278+ // CONNECT
1279+ testParseError ( 'Packet too short' , Buffer . from ( [
1280+ 16 , // Header
1281+ 8 , // Packet length
1282+ 0 , 4 , // Protocol ID length
1283+ 77 , 81 , 84 , 84 , // MQTT
1284+ 5 , // Version
1285+ 2 , // Clean Start enabled
1286+ 0 , 0 , // Keep-Alive
1287+ 0 , // Property Length
1288+ 0 , 0 // Properties
1289+ // No payload
1290+ ] ) , { protocolVersion : 5 } )
1291+ // SUBSCRIBE
1292+ testParseError ( 'Malformed subscribe, no payload specified' , Buffer . from ( [
1293+ 130 , // Header
1294+ 0 // Packet length
1295+ ] ) , { protocolVersion : 5 } )
1296+ // SUBACK
1297+ testParseError ( 'Malformed suback, no payload specified' , Buffer . from ( [
1298+ 144 , // Header
1299+ 0 // Packet length
1300+ ] ) , { protocolVersion : 5 } )
1301+ // UNSUBSCRIBE
1302+ testParseError ( 'Malformed unsubscribe, no payload specified' , Buffer . from ( [
1303+ 162 , // Header
1304+ 0 // Packet length
1305+ ] ) , { protocolVersion : 5 } )
1306+ // UNSUBACK (v.5)
1307+ testParseError ( 'Malformed unsuback, no payload specified' , Buffer . from ( [
1308+ 176 , // Header
1309+ 0 // Packet length
1310+ ] ) , { protocolVersion : 5 } )
1311+ // UNSUBACK (v.4)
1312+ testParseError ( 'Malformed unsuback, payload length must be 2' , Buffer . from ( [
1313+ 176 , // Header
1314+ 1 , // Packet length
1315+ 1
1316+ ] ) , { protocolVersion : 4 } )
1317+ // UNSUBACK (v.3)
1318+ testParseError ( 'Malformed unsuback, payload length must be 2' , Buffer . from ( [
1319+ 176 , // Header
1320+ 1 , // Packet length
1321+ 1
1322+ ] ) , { protocolVersion : 3 } )
1323+
12771324testParseGenerate ( 'connack with return code 0' , {
12781325 cmd : 'connack' ,
12791326 retain : false ,
0 commit comments