From 5ff5fe47bad947a95545390865c597bec6c62070 Mon Sep 17 00:00:00 2001 From: TSRBerry <20988865+TSRBerry@users.noreply.github.com> Date: Fri, 2 Sep 2022 00:04:01 +0200 Subject: [PATCH] Bsd: Fix NullReferenceException in BsdSockAddr.FromIPEndPoint() (#3652) * Bsd: Fix NullReferenceException in BsdSockAddr.FromIPEndPoint() Allows "Victor Vran Overkill Edition" to boot with guest internet access enabled. Thanks to EmulationFanatic for testing this for me! * Bsd: Return proper error code if RemoteEndPoint is null * Remove whitespace from empty line Co-authored-by: gdkchan Co-authored-by: gdkchan --- Ryujinx.HLE/HOS/Services/Sockets/Bsd/IClient.cs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Ryujinx.HLE/HOS/Services/Sockets/Bsd/IClient.cs b/Ryujinx.HLE/HOS/Services/Sockets/Bsd/IClient.cs index e056e3315..654844dc0 100644 --- a/Ryujinx.HLE/HOS/Services/Sockets/Bsd/IClient.cs +++ b/Ryujinx.HLE/HOS/Services/Sockets/Bsd/IClient.cs @@ -573,14 +573,18 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd LinuxError errno = LinuxError.EBADF; ISocket socket = _context.RetrieveSocket(socketFd); - if (socket != null) { - errno = LinuxError.SUCCESS; + errno = LinuxError.ENOTCONN; - WriteSockAddr(context, bufferPosition, socket, true); - WriteBsdResult(context, 0, errno); - context.ResponseData.Write(Unsafe.SizeOf()); + if (socket.RemoteEndPoint != null) + { + errno = LinuxError.SUCCESS; + + WriteSockAddr(context, bufferPosition, socket, true); + WriteBsdResult(context, 0, errno); + context.ResponseData.Write(Unsafe.SizeOf()); + } } return WriteBsdResult(context, 0, errno); @@ -903,4 +907,4 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd return WriteBsdResult(context, newSockFd, errno); } } -} \ No newline at end of file +}