Skip to content

Commit d911d76

Browse files
committed
Correctly size and allocated the buffer for JSON messages
Home Assistant did not like having a null byte after the JSON.
1 parent 0a9a277 commit d911d76

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

src/PubSubClient_JSON.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ namespace MQTT {
3333
if (_will_message != nullptr)
3434
delete [] _will_message;
3535

36-
_will_message_len = measureJson(willMessage) + 1;
37-
_will_message = new uint8_t[_will_message_len];
36+
_will_message_len = measureJson(willMessage);
37+
_will_message = new uint8_t[_will_message_len + 1];
3838
if (_will_message != nullptr)
39-
serializeJson(willMessage, _will_message, _will_message_len);
39+
serializeJson(willMessage, _will_message, _will_message_len + 1);
4040

4141
return *this;
4242
}
@@ -51,11 +51,11 @@ namespace MQTT {
5151
\param payload Object of the message
5252
*/
5353
PublishJSON(String topic, const ArduinoJson::JsonDocument& object) :
54-
Publish(topic, nullptr, measureJson(object) + 1)
54+
Publish(topic, nullptr, measureJson(object))
5555
{
56-
_payload = new uint8_t[_payload_len];
56+
_payload = new uint8_t[_payload_len + 1];
5757
if (_payload != nullptr)
58-
serializeJson(object, _payload, _payload_len);
58+
serializeJson(object, _payload, _payload_len + 1);
5959
}
6060

6161
};

0 commit comments

Comments
 (0)