Client: Fix ArgumentNullException following recent ArrayPool usage

This commit is contained in:
Tal Aloni 2023-12-30 20:43:09 +02:00
parent cb2c50a7c3
commit e31df2a797
2 changed files with 34 additions and 28 deletions

View file

@ -458,21 +458,24 @@ namespace SMBLibrary.Client
buffer.SetNumberOfBytesReceived(numberOfBytesReceived); buffer.SetNumberOfBytesReceived(numberOfBytesReceived);
ProcessConnectionBuffer(state); ProcessConnectionBuffer(state);
try if (clientSocket.Connected)
{ {
clientSocket.BeginReceive(buffer.Buffer, buffer.WriteOffset, buffer.AvailableLength, SocketFlags.None, new AsyncCallback(OnClientSocketReceive), state); try
} {
catch (ObjectDisposedException) clientSocket.BeginReceive(buffer.Buffer, buffer.WriteOffset, buffer.AvailableLength, SocketFlags.None, new AsyncCallback(OnClientSocketReceive), state);
{ }
m_isConnected = false; catch (ObjectDisposedException)
buffer.Dispose(); {
Log("[ReceiveCallback] BeginReceive ObjectDisposedException"); m_isConnected = false;
} buffer.Dispose();
catch (SocketException ex) Log("[ReceiveCallback] BeginReceive ObjectDisposedException");
{ }
m_isConnected = false; catch (SocketException ex)
buffer.Dispose(); {
Log("[ReceiveCallback] BeginReceive SocketException: " + ex.Message); m_isConnected = false;
buffer.Dispose();
Log("[ReceiveCallback] BeginReceive SocketException: " + ex.Message);
}
} }
} }
} }

View file

@ -396,21 +396,24 @@ namespace SMBLibrary.Client
buffer.SetNumberOfBytesReceived(numberOfBytesReceived); buffer.SetNumberOfBytesReceived(numberOfBytesReceived);
ProcessConnectionBuffer(state); ProcessConnectionBuffer(state);
try if (clientSocket.Connected)
{ {
clientSocket.BeginReceive(buffer.Buffer, buffer.WriteOffset, buffer.AvailableLength, SocketFlags.None, new AsyncCallback(OnClientSocketReceive), state); try
} {
catch (ObjectDisposedException) clientSocket.BeginReceive(buffer.Buffer, buffer.WriteOffset, buffer.AvailableLength, SocketFlags.None, new AsyncCallback(OnClientSocketReceive), state);
{ }
m_isConnected = false; catch (ObjectDisposedException)
Log("[ReceiveCallback] BeginReceive ObjectDisposedException"); {
buffer.Dispose(); m_isConnected = false;
} Log("[ReceiveCallback] BeginReceive ObjectDisposedException");
catch (SocketException ex) buffer.Dispose();
{ }
m_isConnected = false; catch (SocketException ex)
Log("[ReceiveCallback] BeginReceive SocketException: " + ex.Message); {
buffer.Dispose(); m_isConnected = false;
Log("[ReceiveCallback] BeginReceive SocketException: " + ex.Message);
buffer.Dispose();
}
} }
} }
} }