patches: fix c_utf8 validation
Some checks are pending
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (/rpcs3/.ci/build-linux.sh, gcc, rpcs3/rpcs3-ci-jammy:1.2, ubuntu-24.04) (push) Waiting to run
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (a1d35836e8d45bfc6f63c26f0a3e5d46ef622fe1, rpcs3/rpcs3-binaries-linux-arm64, /rpcs3/.ci/build-linux-aarch64.sh, clang, rpcs3/rpcs3-ci-jammy-aarch64:1.2, ubuntu-24.04-arm) (push) Waiting to run
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (d812f1254a1157c80fd402f94446310560f54e5f, rpcs3/rpcs3-binaries-linux, /rpcs3/.ci/build-linux.sh, clang, rpcs3/rpcs3-ci-jammy:1.2, ubuntu-24.04) (push) Waiting to run
Build RPCS3 / RPCS3 Windows (push) Waiting to run

This commit is contained in:
Megamouse 2025-03-24 16:50:58 +01:00
parent ff135384ef
commit faef63e8a7

View File

@ -737,7 +737,7 @@ bool patch_engine::add_patch_data(YAML::Node node, patch_info& info, u32 modifie
return false;
}
struct patch_data p_data{};
patch_data p_data{};
p_data.type = type;
p_data.offset = addr_node.as<u32>(0) + modifier;
p_data.original_offset = addr_node.Scalar();
@ -789,8 +789,14 @@ bool patch_engine::add_patch_data(YAML::Node node, patch_info& info, u32 modifie
switch (p_data.type)
{
case patch_type::invalid:
case patch_type::load:
{
fmt::throw_exception("Unreachable patch type: %s", p_data.type);
}
case patch_type::bp_exec:
case patch_type::utf8:
case patch_type::c_utf8:
case patch_type::jump_func:
case patch_type::move_file:
case patch_type::hide_file:
@ -827,7 +833,13 @@ bool patch_engine::add_patch_data(YAML::Node node, patch_info& info, u32 modifie
get_node_value(u32{}, s32{});
break;
}
default:
case patch_type::alloc:
case patch_type::code_alloc:
case patch_type::jump:
case patch_type::jump_link:
case patch_type::le64:
case patch_type::be64:
case patch_type::bd64:
{
get_node_value(u64{}, s64{});
break;