Explorar o código

bsd: Check if socket is bound before calling RecvFrom() (#3761)

TSRBerry %!s(int64=3) %!d(string=hai) anos
pai
achega
e43390c723
Modificáronse 1 ficheiros con 8 adicións e 1 borrados
  1. 8 1
      Ryujinx.HLE/HOS/Services/Sockets/Bsd/Impl/ManagedSocket.cs

+ 8 - 1
Ryujinx.HLE/HOS/Services/Sockets/Bsd/Impl/ManagedSocket.cs

@@ -235,6 +235,13 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd
                     shouldBlockAfterOperation = true;
                 }
 
+                if (!Socket.IsBound)
+                {
+                    receiveSize = -1;
+
+                    return LinuxError.EOPNOTSUPP;
+                }
+
                 receiveSize = Socket.ReceiveFrom(buffer[..size], ConvertBsdSocketFlags(flags), ref temp);
 
                 remoteEndPoint = (IPEndPoint)temp;
@@ -519,4 +526,4 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd
             }
         }
     }
-}
+}