From aa92e4cbd09b4d303487495c4f968a942fa1d177 Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Fri, 12 May 2017 15:28:15 +0800 Subject: [PATCH] Fix stupid bug in MagiskHide --- jni/magiskhide/magiskhide.c | 8 ++++---- jni/magiskhide/proc_monitor.c | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/jni/magiskhide/magiskhide.c b/jni/magiskhide/magiskhide.c index bef800455..98eca70af 100644 --- a/jni/magiskhide/magiskhide.c +++ b/jni/magiskhide/magiskhide.c @@ -75,6 +75,10 @@ void launch_magiskhide(int client) { close(sv[1]); + // Initialize the mutex lock + pthread_mutex_init(&hide_lock, NULL); + pthread_mutex_init(&file_lock, NULL); + // Initialize the hide list if (init_list()) goto error; @@ -82,10 +86,6 @@ void launch_magiskhide(int client) { // Add SafetyNet by default add_list(strdup("com.google.android.gms.unstable")); - // Initialize the mutex lock - pthread_mutex_init(&hide_lock, NULL); - pthread_mutex_init(&file_lock, NULL); - write_int(client, DAEMON_SUCCESS); close(client); diff --git a/jni/magiskhide/proc_monitor.c b/jni/magiskhide/proc_monitor.c index 25c0f6afe..a059f92c3 100644 --- a/jni/magiskhide/proc_monitor.c +++ b/jni/magiskhide/proc_monitor.c @@ -30,6 +30,7 @@ static void read_namespace(const int pid, char* target, const size_t size) { // Workaround for the lack of pthread_cancel static void quit_pthread(int sig) { + err_handler = do_nothing; LOGD("proc_monitor: running cleanup\n"); destroy_list(); free(buffer); @@ -71,7 +72,7 @@ void proc_monitor() { struct sigaction act; memset(&act, 0, sizeof(act)); act.sa_handler = quit_pthread; - sigaction(SIGPIPE, &act, NULL); + sigaction(SIGUSR1, &act, NULL); // The error handler should stop magiskhide services err_handler = proc_monitor_err;