From d20517483e2cee09b6b01b250e64336446a2f6ba Mon Sep 17 00:00:00 2001 From: vvb2060 Date: Mon, 20 Sep 2021 13:15:16 +0800 Subject: [PATCH] Prevent multiple mounts of devpts --- native/jni/core/daemon.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/native/jni/core/daemon.cpp b/native/jni/core/daemon.cpp index 771aeedcb..cb6198f72 100644 --- a/native/jni/core/daemon.cpp +++ b/native/jni/core/daemon.cpp @@ -349,13 +349,15 @@ static void daemon_entry() { // Use isolated devpts if kernel support if (access("/dev/pts/ptmx", F_OK) == 0) { auto pts = MAGISKTMP + "/" SHELLPTS; - xmkdirs(pts.data(), 0755); - xmount("devpts", pts.data(), "devpts", - MS_NOSUID | MS_NOEXEC, "newinstance"); - auto ptmx = pts + "/ptmx"; - if (access(ptmx.data(), F_OK)) { - xumount(pts.data()); - rmdir(pts.data()); + if (access(pts.data(), F_OK)) { + xmkdirs(pts.data(), 0755); + xmount("devpts", pts.data(), "devpts", + MS_NOSUID | MS_NOEXEC, "newinstance"); + auto ptmx = pts + "/ptmx"; + if (access(ptmx.data(), F_OK)) { + xumount(pts.data()); + rmdir(pts.data()); + } } }