summaryrefslogtreecommitdiff
path: root/sys-process/psmisc/files/psmisc-23.5-fix-killall-pidfd_send_signal.patch
diff options
context:
space:
mode:
Diffstat (limited to 'sys-process/psmisc/files/psmisc-23.5-fix-killall-pidfd_send_signal.patch')
-rw-r--r--sys-process/psmisc/files/psmisc-23.5-fix-killall-pidfd_send_signal.patch40
1 files changed, 0 insertions, 40 deletions
diff --git a/sys-process/psmisc/files/psmisc-23.5-fix-killall-pidfd_send_signal.patch b/sys-process/psmisc/files/psmisc-23.5-fix-killall-pidfd_send_signal.patch
deleted file mode 100644
index 0fc9c30a9635..000000000000
--- a/sys-process/psmisc/files/psmisc-23.5-fix-killall-pidfd_send_signal.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-https://gitlab.com/psmisc/psmisc/-/commit/6892e321e7042e3df60a5501a1c59d076e8a856f
-
-From 6892e321e7042e3df60a5501a1c59d076e8a856f Mon Sep 17 00:00:00 2001
-From: Craig Small <csmall@dropbear.xyz>
-Date: Mon, 18 Jul 2022 20:16:42 +1000
-Subject: [PATCH] killall: use kill if pidfd_send_signal() fails
-
-The pidfd_send_signal() system call appeared in Linux 5.1
-If psmisc is build on a system before then, or a non-Linux
-system, then kill() is used instead. However if psmisc is
-built on a Linux >= 5.1 system but run on a < 5.1 Linux
-system the system call fails and killall doesn't work.
-
-The fix, as proposed by Peter T. Breuer, is to try
-pidfd_send_signal() and if the return value is < 0 and
-errno is ENOSYS then we know at runtime the system call
-failed and we fall through to trusty old kill().
-
-Note, this means that killall on systems below 5.1 still
-have the race PID condition that the pidfd calls fix.
-
-References:
- https://bugs.debian.org/1015228
---- a/src/killall.c
-+++ b/src/killall.c
-@@ -326,7 +326,12 @@ my_send_signal(
- {
- #ifdef __NR_pidfd_send_signal
- if (pid > 0) /* Not PGID */
-- return syscall(__NR_pidfd_send_signal, pidfd, sig, NULL, 0);
-+ {
-+ int ret = syscall(__NR_pidfd_send_signal, pidfd, sig, NULL, 0);
-+ if (ret >= 0 || errno != ENOSYS)
-+ return ret;
-+ // fall through if no such syscall
-+ }
- #endif
- return kill(pid, sig);
- }
-GitLab