diff --git a/lib/mqtt_msg.c b/lib/mqtt_msg.c index 1d67119..a39a3bd 100644 --- a/lib/mqtt_msg.c +++ b/lib/mqtt_msg.c @@ -449,8 +449,11 @@ mqtt_message_t *mqtt_msg_publish(mqtt_connection_t *connection, const char *topi connection->message.length = connection->buffer_length; connection->message.fragmented_msg_total_length = data_length + connection->message.fragmented_msg_data_offset; } else { - memcpy(connection->buffer + connection->message.length, data, data_length); - connection->message.length += data_length; + if (data != NULL) + { + memcpy(connection->buffer + connection->message.length, data, data_length); + connection->message.length += data_length; + } connection->message.fragmented_msg_total_length = 0; } return fini_message(connection, MQTT_MSG_TYPE_PUBLISH, 0, qos, retain);