[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <4ffe3143-fc53-7178-cf44-f3481eb96ae4@huawei.com>
Date: Thu, 29 Sep 2022 15:39:57 +0800
From: zhanchengbin <zhanchengbin1@...wei.com>
To: Theodore Ts'o <tytso@....edu>
CC: <linux-ext4@...r.kernel.org>, <liuzhiqiang26@...wei.com>,
linfeilong <linfeilong@...wei.com>
Subject: [bug report] misc/fsck.c: Processes may kill other processes.
Hi Tytso,
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.
execute:
if (noexecute)
pid = -1;
inst->pid = pid;
// Find the end of the list, so we add the instance on at the end.
kill_all:
for (inst = instance_list; inst; inst = inst->next) {
kill(inst->pid, signum);
}
misc/fsck.c:
main:
->PRS
case 'N':
noexecute++;
for (num_devices) {
if (cancel_requested) {
->kill_all(SIGTERM);
}
->fsck_device
->execute
}
(gdb) bt
#0 execute (type=<optimized out>, type@...ry=0x412cd0 "ext4",
device=0x412b00 "/root/a.img", mntpt=<optimized out>,
interactive=interactive@...ry=1) at fsck.c:523
#1 0x0000000000404959 in fsck_device (fs=fs@...ry=0x412ac0,
interactive=interactive@...ry=1) at fsck.c:727
#2 0x0000000000402704 in main (argc=<optimized out>, argv=<optimized
out>) at fsck.c:1333
(gdb) p inst->pid
$7 = -1
regards,
Zhan Chengbin
Powered by blists - more mailing lists