Browse Source

[fs] fix crash on '#' comments in pchtxt patches (#4124)

Adds `#` as a valid pchtxt comment, and fixes a crash that could occur
when using odd-length values

This patch was sent by Adam Kittelson <adam@apathydrive.com>

Signed-off-by: crueter <crueter@eden-emu.dev>
Co-authored-by: Cole Avenue <cole@melisand.re>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4124
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
pull/4228/head
crueter 1 day ago
parent
commit
b9a88297cb
No known key found for this signature in database GPG Key ID: 425ACD2D4830EBC6
  1. 5
      src/common/hex_util.cpp
  2. 2
      src/core/file_sys/ips_layer.cpp

5
src/common/hex_util.cpp

@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: 2013 Dolphin Emulator Project
// SPDX-FileCopyrightText: 2014 Citra Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
@ -12,7 +15,7 @@ std::vector<u8> HexStringToVector(std::string_view str, bool little_endian) {
for (std::size_t i = str.size() - 2; i <= str.size(); i -= 2)
out[i / 2] = (ToHexNibble(str[i]) << 4) | ToHexNibble(str[i + 1]);
} else {
for (std::size_t i = 0; i < str.size(); i += 2)
for (std::size_t i = 0; i + 1 < str.size(); i += 2)
out[i / 2] = (ToHexNibble(str[i]) << 4) | ToHexNibble(str[i + 1]);
}
return out;

2
src/core/file_sys/ips_layer.cpp

@ -256,7 +256,7 @@ void IPSwitchCompiler::Parse() {
const auto& patch_line = lines[++i];
// Patch line may contain comments
if (StartsWith(patch_line, "//")) {
if (StartsWith(patch_line, "//") || StartsWith(patch_line, "#")) {
continue;
}

Loading…
Cancel
Save