From 13757f016a62ee7250fb1e8f69569fec2c57d537 Mon Sep 17 00:00:00 2001 From: lizzie Date: Wed, 1 Jul 2026 19:13:39 +0000 Subject: [PATCH] properly handle writebuffer and dont write OOB --- src/core/hle/service/sockets/bsd.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/core/hle/service/sockets/bsd.cpp b/src/core/hle/service/sockets/bsd.cpp index c040715696..58e79915f3 100644 --- a/src/core/hle/service/sockets/bsd.cpp +++ b/src/core/hle/service/sockets/bsd.cpp @@ -676,8 +676,8 @@ Network::Errno BSD::GetPeerNameImpl(s32 fd, std::vector& write_buffer) { if (bsd_errno != Network::Errno::SUCCESS) { 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); return bsd_errno; } @@ -696,8 +696,8 @@ Network::Errno BSD::GetSockNameImpl(s32 fd, std::vector& write_buffer) { if (bsd_errno != Network::Errno::SUCCESS) { 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); return bsd_errno; }