fix: multiple memory leaks and segfault issues in Flatbuffer Forwarder. (#709)

This commit is contained in:
Scott Porter
2020-03-01 06:37:06 -08:00
committed by GitHub
parent 8db85c9a5a
commit 11a6ff43ae
4 changed files with 17 additions and 8 deletions

View File

@@ -66,7 +66,7 @@ void FlatBufferConnection::readData()
if((uint32_t) _receiveBuffer.size() < messageSize + 4) return;
// extract message only and remove header + msg from buffer :: QByteArray::remove() does not return the removed data
const QByteArray msg = _receiveBuffer.right(messageSize);
const QByteArray msg = _receiveBuffer.mid(4, messageSize);
_receiveBuffer.remove(0, messageSize + 4);
const uint8_t* msgData = reinterpret_cast<const uint8_t*>(msg.constData());
@@ -117,6 +117,7 @@ void FlatBufferConnection::setColor(const ColorRgb & color, int priority, int du
_builder.Finish(req);
sendMessage(_builder.GetBufferPointer(), _builder.GetSize());
_builder.Clear();
}
void FlatBufferConnection::setImage(const Image<ColorRgb> &image)
@@ -128,6 +129,7 @@ void FlatBufferConnection::setImage(const Image<ColorRgb> &image)
_builder.Finish(req);
sendMessage(_builder.GetBufferPointer(), _builder.GetSize());
_builder.Clear();
}
void FlatBufferConnection::clear(int priority)
@@ -137,6 +139,7 @@ void FlatBufferConnection::clear(int priority)
_builder.Finish(req);
sendMessage(_builder.GetBufferPointer(), _builder.GetSize());
_builder.Clear();
}
void FlatBufferConnection::clearAll()
@@ -193,7 +196,6 @@ void FlatBufferConnection::sendMessage(const uint8_t* buffer, uint32_t size)
count += _socket.write(reinterpret_cast<const char *>(header), 4);
count += _socket.write(reinterpret_cast<const char *>(buffer), size);
_socket.flush();
_builder.Clear();
}
bool FlatBufferConnection::parseReply(const hyperionnet::Reply *reply)