summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorliamwhite <liamwhite@users.noreply.github.com>2022-10-28 02:07:48 +0200
committerGitHub <noreply@github.com>2022-10-28 02:07:48 +0200
commit8ce62567229650c519d7df4c69fbdd2da636967f (patch)
treef5a0a65876bda0f882a59ab7b374d6fa51a5cdcb
parentMerge pull request #9115 from vonchenplus/game_name_by_language (diff)
parentarm_interface: curb infinite recursion in stacktrace generation (diff)
downloadyuzu-8ce62567229650c519d7df4c69fbdd2da636967f.tar
yuzu-8ce62567229650c519d7df4c69fbdd2da636967f.tar.gz
yuzu-8ce62567229650c519d7df4c69fbdd2da636967f.tar.bz2
yuzu-8ce62567229650c519d7df4c69fbdd2da636967f.tar.lz
yuzu-8ce62567229650c519d7df4c69fbdd2da636967f.tar.xz
yuzu-8ce62567229650c519d7df4c69fbdd2da636967f.tar.zst
yuzu-8ce62567229650c519d7df4c69fbdd2da636967f.zip
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic_32.cpp2
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic_64.cpp2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/core/arm/dynarmic/arm_dynarmic_32.cpp b/src/core/arm/dynarmic/arm_dynarmic_32.cpp
index d1e70f19d..287ba102e 100644
--- a/src/core/arm/dynarmic/arm_dynarmic_32.cpp
+++ b/src/core/arm/dynarmic/arm_dynarmic_32.cpp
@@ -450,7 +450,7 @@ std::vector<ARM_Interface::BacktraceEntry> ARM_Dynarmic_32::GetBacktrace(Core::S
// Frame records are two words long:
// fp+0 : pointer to previous frame record
// fp+4 : value of lr for frame
- while (true) {
+ for (size_t i = 0; i < 256; i++) {
out.push_back({"", 0, lr, 0, ""});
if (!fp || (fp % 4 != 0) || !memory.IsValidVirtualAddressRange(fp, 8)) {
break;
diff --git a/src/core/arm/dynarmic/arm_dynarmic_64.cpp b/src/core/arm/dynarmic/arm_dynarmic_64.cpp
index 22b5d5656..afb7fb3a0 100644
--- a/src/core/arm/dynarmic/arm_dynarmic_64.cpp
+++ b/src/core/arm/dynarmic/arm_dynarmic_64.cpp
@@ -517,7 +517,7 @@ std::vector<ARM_Interface::BacktraceEntry> ARM_Dynarmic_64::GetBacktrace(Core::S
// Frame records are two words long:
// fp+0 : pointer to previous frame record
// fp+8 : value of lr for frame
- while (true) {
+ for (size_t i = 0; i < 256; i++) {
out.push_back({"", 0, lr, 0, ""});
if (!fp || (fp % 4 != 0) || !memory.IsValidVirtualAddressRange(fp, 16)) {
break;