diff options
author | zhanchengbin <zhanchengbin1@huawei.com> | 2022-10-10 16:56:58 +0800 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2023-01-18 01:03:01 -0500 |
commit | d08ef863feae14e4710bf2026404e6c6e06db2be (patch) | |
tree | 8705322d669f6a3dd7b7961f33f444ff0ab95154 | |
parent | 7c4bbd8f052af2b2be84293ddeff0d36e35b5a8f (diff) | |
download | e2fsprogs-d08ef863feae14e4710bf2026404e6c6e06db2be.tar.gz |
misc/fsck.c: Processes may kill other processes.
I find a error in misc/fsck.c, if run the fsck -N command, processes
don't execute, just show what would be done. However, the pid whose
value is -1 is added to the instance_list list in the execute
function,if the kill_all function is called later, kill(-1, signum)
is executed, Signals are sent to all processes except the number one
process and itself. Other processes will be killed if they use the
default signal processing function.
Signed-off-by: zhanchengbin <zhanchengbin1@huawei.com>
Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Reviewed-by: Zhiqiang Liu <liuzhiqiang26@huawei.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-rw-r--r-- | misc/fsck.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/misc/fsck.c b/misc/fsck.c index 1f6ec7d9b..1769a1064 100644 --- a/misc/fsck.c +++ b/misc/fsck.c @@ -547,6 +547,8 @@ static int kill_all(int signum) for (inst = instance_list; inst; inst = inst->next) { if (inst->flags & FLAG_DONE) continue; + if (inst->pid <= 0) + continue; kill(inst->pid, signum); n++; } |