From 8560ece02e36b1e0ee7b86db2a38b8becbb639e4 Mon Sep 17 00:00:00 2001
From: kwolekr <kwolekr@minetest.net>
Date: Thu, 6 Aug 2015 02:15:21 -0400
Subject: [PATCH] Fix BufferedPacket race condition (fixes #2983)

This was caused by the use the non-threadsafe SharedBuffer in a
threaded context.
---
 src/network/connection.h | 2 +-
 src/util/pointer.h       | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/network/connection.h b/src/network/connection.h
index c48da2c70..f15c3e114 100644
--- a/src/network/connection.h
+++ b/src/network/connection.h
@@ -172,7 +172,7 @@ struct BufferedPacket
 		data(a_size), time(0.0), totaltime(0.0), absolute_send_time(-1),
 		resend_count(0)
 	{}
-	SharedBuffer<u8> data; // Data of the packet, including headers
+	Buffer<u8> data; // Data of the packet, including headers
 	float time; // Seconds from buffering the packet or re-sending
 	float totaltime; // Seconds from buffering the packet
 	unsigned int absolute_send_time;
diff --git a/src/util/pointer.h b/src/util/pointer.h
index 7922a9b39..7f6654787 100644
--- a/src/util/pointer.h
+++ b/src/util/pointer.h
@@ -178,6 +178,14 @@ class Buffer
 	unsigned int m_size;
 };
 
+/************************************************
+ *           !!!  W A R N I N G  !!!            *
+ *           !!!  A C H T U N G  !!!            *
+ *                                              *
+ * This smart pointer class is NOT thread safe. *
+ * ONLY use in a single-threaded context!       *
+ *                                              *
+ ************************************************/
 template <typename T>
 class SharedBuffer
 {
-- 
GitLab