Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 02 May 2000 19:08:06 +0200
From:      Dimitri Tombroff <Dimitri.Tombroff@sun.com>
To:        freebsd-hackers@FreeBSD.ORG
Subject:   bug (?) in trapsignal 
Message-ID:  <390F0B76.4D4A9D62@sun.com>
References:  <200005012111.OAA94013@bubba.whistle.com> <200005021531.LAA73669@khavrinen.lcs.mit.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi all,
I was having a look at the last  kern_sig.c and the following seems wrong :

/*
 * Send a signal caused by a trap to the current process.
 * If it will be caught immediately, deliver it with correct code.
 * Otherwise, post it normally.
 */
void
trapsignal(p, sig, code)
 struct proc *p;
 register int sig;
 u_long code;
{
 register struct sigacts *ps = p->p_sigacts;

 if ((p->p_flag & P_TRACED) == 0 && SIGISMEMBER(p->p_sigcatch, sig) &&
     SIGISMEMBER(p->p_sigmask, sig)) {
                         ~~~~~~~~~~~~~~~~~~~~~~
  p->p_stats->p_ru.ru_nsignals++;
    .....



Seems to me one needs a :

    SIGISMEMBER(p->p_sigmask, sig) == 0



Dimitri



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?390F0B76.4D4A9D62>