From 28e48410c58c1e723c20d0e7415fea59797fe859 Mon Sep 17 00:00:00 2001 From: "Herman S." <429230+has207@users.noreply.github.com> Date: Wed, 8 Oct 2025 11:41:02 +0900 Subject: [PATCH] Fix potential buffer overflow in posix memory handling --- src/xenia/base/memory_posix.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/xenia/base/memory_posix.cc b/src/xenia/base/memory_posix.cc index c7e061ece..15c8a7d68 100644 --- a/src/xenia/base/memory_posix.cc +++ b/src/xenia/base/memory_posix.cc @@ -184,7 +184,8 @@ bool QueryProtect(void* base_address, size_t& length, PageAccess& access_out) { while (std::getline(memory_maps, maps_entry_string)) { std::stringstream entry_stream(maps_entry_string); uintptr_t map_region_begin, map_region_end; - char separator, protection[4]; + char separator; + char protection[5]; // 4 chars (e.g., "r-xp") + null terminator entry_stream >> std::hex >> map_region_begin >> separator >> map_region_end >> protection; @@ -199,7 +200,7 @@ bool QueryProtect(void* base_address, size_t& length, PageAccess& access_out) { while (std::getline(memory_maps, maps_entry_string)) { std::stringstream next_entry_stream(maps_entry_string); uintptr_t next_map_region_begin, next_map_region_end; - char next_protection[4]; + char next_protection[5]; // 4 chars (e.g., "r-xp") + null terminator next_entry_stream >> std::hex >> next_map_region_begin >> separator >> next_map_region_end >> next_protection;