From 4d9b56c7f1642fd1fa2a0e99853bf59496b3f5d5 Mon Sep 17 00:00:00 2001 From: Ani Date: Sat, 25 Feb 2017 23:27:31 +0000 Subject: [PATCH] libnet: recvfrom() fix (#2427) Prevents emulator crash when invalid socket is provided to the function --- rpcs3/Emu/Cell/Modules/sys_net.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/rpcs3/Emu/Cell/Modules/sys_net.cpp b/rpcs3/Emu/Cell/Modules/sys_net.cpp index 3b2b72e112..b11cc138c2 100644 --- a/rpcs3/Emu/Cell/Modules/sys_net.cpp +++ b/rpcs3/Emu/Cell/Modules/sys_net.cpp @@ -432,6 +432,12 @@ namespace sys_net memcpy(&_addr, addr.get_ptr(), sizeof(::sockaddr)); _addr.sa_family = addr->sa_family; + + if (s <= 0) { + libnet.error("recvfrom(): invalid socket %d", s); + return SYS_NET_EBADF; + } + s32 ret = ::recvfrom(sock->s, buf.get_ptr(), len, flags, &_addr, &_paddrlen); *paddrlen = _paddrlen;