diff options
Diffstat (limited to 'src/stream_mqtt.c')
| -rw-r--r-- | src/stream_mqtt.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/stream_mqtt.c b/src/stream_mqtt.c index c9d0e12..3864ef3 100644 --- a/src/stream_mqtt.c +++ b/src/stream_mqtt.c @@ -10,7 +10,9 @@ int64_t StreamReadMqttString(bstring *buf, Stream *stream) if (StreamReadUint16Be(&len, stream) == -1) return -1; - result = bfromcstralloc(len, ""); + /* We need 1 extra byte for a NULL terminator. bfromcstralloc doesn't do + any size snapping. */ + result = bfromcstralloc(len+1, ""); if (!result) return -1; @@ -22,6 +24,7 @@ int64_t StreamReadMqttString(bstring *buf, Stream *stream) } result->slen = len; + result->data[len] = '\0'; *buf = result; |
