From eabf04bd34b840ee3359609fc977cf4795b33a3a Mon Sep 17 00:00:00 2001 From: Loic Blot Date: Sun, 3 Sep 2017 19:01:53 +0200 Subject: Network part requires SharedBuffers to be pass as value This can trigger unreproductible crashes due to concurrency problem on SharedBuffers This fixes #6354 --- src/network/connection.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'src/network/connection.cpp') diff --git a/src/network/connection.cpp b/src/network/connection.cpp index 01f1a7e63..b2e443901 100644 --- a/src/network/connection.cpp +++ b/src/network/connection.cpp @@ -55,7 +55,7 @@ std::mutex log_message_mutex; #define PING_TIMEOUT 5.0 -BufferedPacket makePacket(Address &address, const SharedBuffer &data, +BufferedPacket makePacket(Address &address, SharedBuffer data, u32 protocol_id, u16 sender_peer_id, u8 channel) { u32 packet_size = data.getSize() + BASE_HEADER_SIZE; @@ -125,7 +125,7 @@ void makeSplitPacket(const SharedBuffer &data, u32 chunksize_max, u16 seqnum } } -void makeAutoSplitPacket(const SharedBuffer &data, u32 chunksize_max, +void makeAutoSplitPacket(SharedBuffer data, u32 chunksize_max, u16 &split_seqnum, std::list> *list) { u32 original_header_size = 1; @@ -139,9 +139,7 @@ void makeAutoSplitPacket(const SharedBuffer &data, u32 chunksize_max, list->push_back(makeOriginalPacket(data)); } -SharedBuffer makeReliablePacket( - const SharedBuffer &data, - u16 seqnum) +SharedBuffer makeReliablePacket(SharedBuffer data, u16 seqnum) { u32 header_size = 3; u32 packet_size = data.getSize() + header_size; -- cgit v1.2.3