[bug report] misc/fsck.c: Processes may kill other processes.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@entry=0x412cd0 "ext4", device=0x412b00 "/root/a.img", mntpt=<optimized out>, interactive=interactive@entry=1) at fsck.c:523 #1 0x0000000000404959 in fsck_device (fs=fs@entry=0x412ac0, interactive=interactive@entry=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



[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux