From b14a260827a6002969473d8e07370dd79a221ef8 Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Sun, 8 Nov 2020 02:12:35 -0800 Subject: [PATCH] Offset pid_set by 1 PID starts at 1, not 0 --- native/jni/magiskhide/hide_utils.cpp | 1 - native/jni/magiskhide/proc_monitor.cpp | 11 ++++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/native/jni/magiskhide/hide_utils.cpp b/native/jni/magiskhide/hide_utils.cpp index 76f88c62c..fd8f8d611 100644 --- a/native/jni/magiskhide/hide_utils.cpp +++ b/native/jni/magiskhide/hide_utils.cpp @@ -289,5 +289,4 @@ void test_proc_monitor() { if (procfp == nullptr && (procfp = opendir("/proc")) == nullptr) exit(1); proc_monitor(); - exit(0); } diff --git a/native/jni/magiskhide/proc_monitor.cpp b/native/jni/magiskhide/proc_monitor.cpp index 0f65a2208..e5914f3fa 100644 --- a/native/jni/magiskhide/proc_monitor.cpp +++ b/native/jni/magiskhide/proc_monitor.cpp @@ -35,7 +35,16 @@ static map> uid_proc_map; /* uid -> list of process */ pthread_mutex_t monitor_lock; #define PID_MAX 32768 -static bitset attaches; /* true if pid is monitored */ +struct pid_set { + bitset::const_reference operator[](size_t pos) const { return set[pos - 1]; } + bitset::reference operator[](size_t pos) { return set[pos - 1]; } + void reset() { set.reset(); } +private: + bitset set; +}; + +// true if pid is monitored +pid_set attaches; /******** * Utils