From d021bca6efa78a90d5e5ce101e43985b9b8973b7 Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Fri, 11 Feb 2022 01:26:24 -0800 Subject: [PATCH] Prevent app_process from setting umask Fix #5435 --- native/jni/core/applets.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/native/jni/core/applets.cpp b/native/jni/core/applets.cpp index 4dfa52d89..624e0c6ac 100644 --- a/native/jni/core/applets.cpp +++ b/native/jni/core/applets.cpp @@ -21,20 +21,23 @@ static int call_applet(int argc, char *argv[]) { return (*applet_mains[i])(argc, argv); } } - if (str_starts(base, "app_process")) { - return app_process_main(argc, argv); - } fprintf(stderr, "%s: applet not found\n", base.data()); return 1; } int main(int argc, char *argv[]) { - umask(0); enable_selinux(); cmdline_logging(); init_argv0(argc, argv); string_view base = basename(argv[0]); + + // app_process is actually not an applet + if (str_starts(base, "app_process")) { + return app_process_main(argc, argv); + } + + umask(0); if (base == "magisk" || base == "magisk32" || base == "magisk64") { if (argc > 1 && argv[1][0] != '-') { // Calling applet via magisk [applet] args