diff options
| -rw-r--r-- | src/core/hle/service/sockets/bsd.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/core/hle/service/sockets/bsd.cpp b/src/core/hle/service/sockets/bsd.cpp index 1d20f33a4..803505452 100644 --- a/src/core/hle/service/sockets/bsd.cpp +++ b/src/core/hle/service/sockets/bsd.cpp | |||
| @@ -465,6 +465,11 @@ std::pair<s32, Errno> BSD::PollImpl(std::vector<u8>& write_buffer, std::vector<u | |||
| 465 | return {-1, Errno::INVAL}; | 465 | return {-1, Errno::INVAL}; |
| 466 | } | 466 | } |
| 467 | 467 | ||
| 468 | if (nfds == 0) { | ||
| 469 | // When no entries are provided, -1 is returned with errno zero | ||
| 470 | return {-1, Errno::SUCCESS}; | ||
| 471 | } | ||
| 472 | |||
| 468 | const size_t length = std::min(read_buffer.size(), write_buffer.size()); | 473 | const size_t length = std::min(read_buffer.size(), write_buffer.size()); |
| 469 | std::vector<PollFD> fds(nfds); | 474 | std::vector<PollFD> fds(nfds); |
| 470 | std::memcpy(fds.data(), read_buffer.data(), length); | 475 | std::memcpy(fds.data(), read_buffer.data(), length); |