Browse Source

properly handle writebuffer and dont write OOB

lizzie/refactor-networking-12
lizzie 1 month ago
parent
commit
55dd265276
  1. 8
      src/core/hle/service/sockets/bsd.cpp

8
src/core/hle/service/sockets/bsd.cpp

@ -676,8 +676,8 @@ Network::Errno BSD::GetPeerNameImpl(s32 fd, std::vector<u8>& write_buffer) {
if (bsd_errno != Network::Errno::SUCCESS) { if (bsd_errno != Network::Errno::SUCCESS) {
return bsd_errno; return bsd_errno;
} }
ASSERT(write_buffer.size() >= sizeof(addr_in));
write_buffer.resize(sizeof(addr_in));
ASSERT(write_buffer.size() >= addr_in.len);
write_buffer.resize(addr_in.len);
PutValue(write_buffer, addr_in); PutValue(write_buffer, addr_in);
return bsd_errno; return bsd_errno;
} }
@ -696,8 +696,8 @@ Network::Errno BSD::GetSockNameImpl(s32 fd, std::vector<u8>& write_buffer) {
if (bsd_errno != Network::Errno::SUCCESS) { if (bsd_errno != Network::Errno::SUCCESS) {
return bsd_errno; return bsd_errno;
} }
ASSERT(write_buffer.size() >= sizeof(addr_in));
write_buffer.resize(sizeof(addr_in));
ASSERT(write_buffer.size() >= addr_in.len);
write_buffer.resize(addr_in.len);
PutValue(write_buffer, addr_in); PutValue(write_buffer, addr_in);
return bsd_errno; return bsd_errno;
} }

Loading…
Cancel
Save