RSX: Fix UB in FIFO_control::get_current_arg_ptr()

This commit is contained in:
Elad 2025-03-06 18:03:32 +02:00
parent 583ec5d819
commit 8ed2089070

View file

@ -233,7 +233,11 @@ namespace rsx
else
{
// Return a raw pointer with no limited access
return {static_cast<const u32*>(vm::base(m_iotable->get_addr(m_internal_get))), 0x10000};
constexpr u32 _1m = 0x100000;
const u32 base = m_iotable->get_addr(m_internal_get);
const u32 base_1m = m_iotable->get_addr(m_internal_get + _1m);
return {static_cast<const u32*>(vm::base(base)), (base_1m - _1m == base ? _1m : (_1m - (m_internal_get % _1m))) / 4 };
}
}