summaryrefslogtreecommitdiff
path: root/src/managers/KeybindManager.cpp
diff options
context:
space:
mode:
authornyx <nnyyxxxx@protonmail.com>2025-02-15 08:51:17 -0500
committerGitHub <noreply@github.com>2025-02-15 14:51:17 +0100
commit7a6fde8414ae200759ac41569f189ac5e1ba0fbb (patch)
treeb2d50ed61c5f83e1f6291fe2128ad63ef296d973 /src/managers/KeybindManager.cpp
parent3eb6cb1875bd2f0850d19b1ad1b554c61b06bcec (diff)
internal: redirect exec'd app output to /dev/null (#9411)
Diffstat (limited to 'src/managers/KeybindManager.cpp')
-rw-r--r--src/managers/KeybindManager.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp
index 8daa6838..4bfd1454 100644
--- a/src/managers/KeybindManager.cpp
+++ b/src/managers/KeybindManager.cpp
@@ -967,6 +967,14 @@ uint64_t CKeybindManager::spawnRawProc(std::string args, PHLWORKSPACE pInitialWo
setenv(e.first.c_str(), e.second.c_str(), 1);
}
setenv("WAYLAND_DISPLAY", g_pCompositor->m_szWLDisplaySocket.c_str(), 1);
+
+ int devnull = open("/dev/null", O_WRONLY | O_CLOEXEC);
+ if (devnull != -1) {
+ dup2(devnull, STDOUT_FILENO);
+ dup2(devnull, STDERR_FILENO);
+ close(devnull);
+ }
+
execl("/bin/sh", "/bin/sh", "-c", args.c_str(), nullptr);
// exit grandchild
_exit(0);