From 47b9aca324ca490f7f25ca4e5a2856b31068a698 Mon Sep 17 00:00:00 2001 From: Rohan Singh Date: Thu, 14 Jan 2021 12:58:59 -0500 Subject: [PATCH] Crash fix in ConnectionManager.Receive due to bad pointer --- Facepunch.Steamworks/Networking/ConnectionManager.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Facepunch.Steamworks/Networking/ConnectionManager.cs b/Facepunch.Steamworks/Networking/ConnectionManager.cs index af4bc3c..ce32b72 100644 --- a/Facepunch.Steamworks/Networking/ConnectionManager.cs +++ b/Facepunch.Steamworks/Networking/ConnectionManager.cs @@ -110,14 +110,14 @@ namespace Steamworks public unsafe int Receive( int bufferSize = 32, bool receiveToEnd = true ) { - if ( bufferSize > 256 ) throw new ArgumentOutOfRangeException( nameof( bufferSize ) ); + if ( bufferSize < 1 || bufferSize > 256 ) throw new ArgumentOutOfRangeException( nameof( bufferSize ) ); int totalProcessed = 0; NetMsg** messageBuffer = stackalloc NetMsg*[bufferSize]; while ( true ) { - int processed = SteamNetworkingSockets.Internal.ReceiveMessagesOnConnection( Connection, new IntPtr( &messageBuffer ), bufferSize ); + int processed = SteamNetworkingSockets.Internal.ReceiveMessagesOnConnection( Connection, new IntPtr( &messageBuffer[0] ), bufferSize ); totalProcessed += processed; for ( int i = 0; i < processed; i++ )