From bb7c5a3de31b91f9b579a05f94ea778e5c1f07b7 Mon Sep 17 00:00:00 2001 From: flawedworld Date: Mon, 6 Jun 2022 12:04:04 +0100 Subject: [PATCH] Workaround issues in broken apps --- h_malloc.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/h_malloc.c b/h_malloc.c index 5fceaef..1f62616 100644 --- a/h_malloc.c +++ b/h_malloc.c @@ -1087,6 +1087,27 @@ COLD static void handle_bugs(void) { ro.purge_slabs = false; ro.region_quarantine_protect = false; } + + char cmdline[256]; + if (readlink("/proc/self/cmdline", cmdline, sizeof(cmdline)) == -1) { + return; + } + + static const char *const broken_apps[] = { + "com.blizzard.diablo.immortal", + "com.halfbrick.jetpackjoyride" + }; + + // Workaround for apps (mostly games) which have memory corruption + for (unsigned i = 0; i < sizeof(broken_apps) / sizeof(broken_apps[0]); i++) { + if (strcmp(broken_apps[i], cmdline) == 0) { + ro.zero_on_free = false; + ro.purge_slabs = false; + ro.region_quarantine_protect = false; + break; + } + } + } COLD static void init_slow_path(void) {