Bugfix: Segmentation fault when publishing without message
This commit is contained in:
parent
74a29da7df
commit
7a03c95889
1 changed files with 6 additions and 2 deletions
|
@ -347,7 +347,9 @@ Buffer *encode_publish(PublishPayload *payload) {
|
||||||
size_t sz = 0;
|
size_t sz = 0;
|
||||||
sz += strlen(payload->topic) + 2; // topic
|
sz += strlen(payload->topic) + 2; // topic
|
||||||
sz += 2; // packet id
|
sz += 2; // packet id
|
||||||
sz += strlen(payload->message);
|
if (payload->message) {
|
||||||
|
sz += strlen(payload->message);
|
||||||
|
}
|
||||||
|
|
||||||
Buffer *buffer = make_buffer_for_header(sz, PacketTypePublish);
|
Buffer *buffer = make_buffer_for_header(sz, PacketTypePublish);
|
||||||
|
|
||||||
|
@ -357,7 +359,9 @@ Buffer *encode_publish(PublishPayload *payload) {
|
||||||
buffer->data[buffer->position++] = (payload->packet_id & 0xff);
|
buffer->data[buffer->position++] = (payload->packet_id & 0xff);
|
||||||
|
|
||||||
// Payload
|
// Payload
|
||||||
buffer_copy_in(payload->message, buffer, strlen(payload->message));
|
if (payload->message) {
|
||||||
|
buffer_copy_in(payload->message, buffer, strlen(payload->message));
|
||||||
|
}
|
||||||
|
|
||||||
assert(buffer_eof(buffer));
|
assert(buffer_eof(buffer));
|
||||||
return buffer;
|
return buffer;
|
||||||
|
|
Loading…
Reference in a new issue