From 6d71d3037f4708aa3bdce47345a422cc2afe00f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Fri, 31 May 2024 14:54:43 +0800 Subject: [PATCH] WM (macOS): assume wm plugins are daemon process For reducing mis-detection --- src/detection/wm/wm_apple.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/detection/wm/wm_apple.c b/src/detection/wm/wm_apple.c index b767f8e1e..30f8e91e4 100644 --- a/src/detection/wm/wm_apple.c +++ b/src/detection/wm/wm_apple.c @@ -2,6 +2,7 @@ #include "common/sysctl.h" #include "util/mallocHelper.h" +#include "util/stringUtils.h" #include @@ -17,15 +18,17 @@ const char* ffDetectWMPlugin(FFstrbuf* pluginName) for(size_t i = 0; i < length / sizeof(struct kinfo_proc); i++) { + if (processes[i].kp_eproc.e_ppid != 1) continue; + const char* comm = processes[i].kp_proc.p_comm; if( - strcasecmp(comm, "spectacle") != 0 && - strcasecmp(comm, "amethyst") != 0 && - strcasecmp(comm, "kwm") != 0 && - strcasecmp(comm, "chunkwm") != 0 && - strcasecmp(comm, "yabai") != 0 && - strcasecmp(comm, "rectangle") != 0 + !ffStrEqualsIgnCase(comm, "spectacle") && + !ffStrEqualsIgnCase(comm, "amethyst") && + !ffStrEqualsIgnCase(comm, "kwm") && + !ffStrEqualsIgnCase(comm, "chunkwm") && + !ffStrEqualsIgnCase(comm, "yabai") && + !ffStrEqualsIgnCase(comm, "rectangle") ) continue; ffStrbufAppendS(pluginName, comm);