more signal locking bugs?

From: Martin J. Bligh (mbligh@aracnet.com)
Date: Sun Feb 16 2003 - 14:19:03 EST


task_lock nests *inside* tasklist_lock but ... :

__do_SAK:

        task_lock
        ...
        send_sig (SIGKILL, ...)
                send_sig_info (SIGKILL, ...)
                        if (T(sig, SIG_KERNEL_BROADCAST_MASK)))
                                read_lock(&tasklist_lock);
                                ...
                                read_unlock(&tasklist_lock);
        ...
        task_unlock

#define SIG_KERNEL_BROADCAST_MASK (\
        M(SIGHUP) | M(SIGINT) | M(SIGQUIT) | M(SIGILL) | \
        M(SIGTRAP) | M(SIGABRT) | M(SIGBUS) | M(SIGFPE) | \
        M(SIGKILL) | M(SIGUSR1) | M(SIGSEGV) | M(SIGUSR2) | \
        M(SIGPIPE) | M(SIGALRM) | M(SIGTERM) | M(SIGXCPU) | \
        M(SIGXFSZ) | M(SIGVTALRM) | M(SIGPROF) | M(SIGPOLL) | \
        M(SIGSYS) | M_SIGSTKFLT | M(SIGPWR) | M(SIGCONT) | \
        M(SIGSTOP) | M(SIGTSTP) | M(SIGTTIN) | M(SIGTTOU) | \
        M_SIGEMT )

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Feb 23 2003 - 22:00:15 EST