Browse Source

service/bsd: Handle Poll with no entries accurately

Testing shows that Poll called with zero entries returns -1 and signals
an errno of zero.
nce_cpp
ReinUsesLisp 5 years ago
parent
commit
87e6485855
  1. 5
      src/core/hle/service/sockets/bsd.cpp

5
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
return {-1, Errno::INVAL};
}
if (nfds == 0) {
// When no entries are provided, -1 is returned with errno zero
return {-1, Errno::SUCCESS};
}
const size_t length = std::min(read_buffer.size(), write_buffer.size());
std::vector<PollFD> fds(nfds);
std::memcpy(fds.data(), read_buffer.data(), length);

Loading…
Cancel
Save