Projects
Mega:24.03
coreutils
_service:tar_scm:backport-timeout-fix-race-wher...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:backport-timeout-fix-race-where-we-might-kill-arbitrary-proce.patch of Package coreutils
From c1cf5148a1c6302d27661ff0af772de1e7dbb2b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com> Date: Mon, 11 Mar 2024 13:18:37 +0000 Subject: [PATCH] timeout: fix race where we might kill arbitrary processes * src/timeout.c (cleanup): Handle the case where monitored_pid might be -1, which could happen if a signal was received immediately after a failed fork() call. In that case it would send the termination signal to all processes that the timeout process has permission to send signals too. * NEWS: Mention the bug fix. Reference:https://github.com/coreutils/coreutils/commit/c1cf5148a1c6302d27661ff0af772de1e7dbb2b6 Conflict:Delete NEWS. --- src/timeout.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/timeout.c b/src/timeout.c index 6505634..641592c 100644 --- a/src/timeout.c +++ b/src/timeout.c @@ -208,7 +208,7 @@ cleanup (int sig) timed_out = 1; sig = term_signal; } - if (monitored_pid) + if (0 < monitored_pid) { if (kill_after) { @@ -245,8 +245,13 @@ cleanup (int sig) } } } - else /* we're the child or the child is not exec'd yet. */ - _exit (128 + sig); + else if (monitored_pid == -1) + { /* were in the parent, so let it continue to exit below. */ + } + else /* monitored_pid == 0 */ + { /* we're the child or the child is not exec'd yet. */ + _exit (128 + sig); + } } void -- 2.33.0
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2