mqtt: handle POST/PUBLISH without a set POSTFIELDSIZE

Detected by OSS-Fuzz
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28735

Added test 1916 and 1917 to verify.

Closes #6338
This commit is contained in:
Daniel Stenberg 2020-12-17 13:34:38 +01:00
parent 92fe66c510
commit debf23eead
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
8 changed files with 191 additions and 4 deletions

57
tests/data/test1916 Normal file
View file

@ -0,0 +1,57 @@
<testcase>
<info>
<keywords>
MQTT
MQTT PUBLISH
</keywords>
</info>
#
# Server-side
<reply>
<data nocheck="yes">
hello
</data>
<datacheck hex="yes">
00 04 31 31 39 30 68 65 6c 6c 6f 5b 4c 46 5d 0a
</datacheck>
</reply>
#
# Client-side
<client>
<features>
mqtt
</features>
<server>
mqtt
</server>
<name>
MQTT PUBLISH with no POSTFIELDSIZE set
</name>
<tool>
lib1916
</tool>
<command option="binary-trace">
"mqtt://%HOSTIP:%MQTTPORT/ "
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
# These are hexadecimal protocol dumps from the client
#
# Strip out the random part of the client id from the CONNECT message
# before comparison
<strippart>
s/^(.* 00044d5154540402003c000c6375726c).*/$1/
</strippart>
<protocol>
client CONNECT 18 00044d5154540402003c000c6375726c
server CONNACK 2 20020000
client PUBLISH 3 000120
client DISCONNECT 0 e000
</protocol>
</verify>
</testcase>