Issig console messages
utzoo!utcsrgv!thomson
utzoo!utcsrgv!thomson
Fri Mar 19 15:47:51 AEST 1982
We have found two ways in 4.1BSD that an "issig" console message can be
produced. The first occurs when a stopped process is restarted untraced,
and is corrected by adding to routine issig() in file sig.c the
lines marked by a '$' below:
} while (!procxmt() && p->p_flag&STRC);
$ /*
$ * If the traced bit got turned off,
$ * then put the signal taken above back into p_sig
$ * and go back up to the top to rescan signals.
$ * This ensures that siga0 and u_signal are consistent.
$ */
$ if ((p->p_flag&STRC) == 0) {
$ p->p_sig |= sigmask;
$ continue; /* go back and retry */
$ }
/*
* If parent wants us to take the signal,
* then it will leave it in p->p_cursig;
* otherwise we just look for signals again.
*/
The second is due to an incorrect correspondence between signal number
and sigmask when resetting caught signals during an exec(), and is
corrected by changing one line in routine setregs() of file sys1.c from
for(rp = &u.u_signal[0], sigmask = 1L; rp < &u.u_signal[NSIG];
to
for(rp = &u.u_signal[1], sigmask = 1L; rp < &u.u_signal[NSIG];
Brian Thomson
Computer Systems Research Group
University of Toronto
(decvax!utzoo!utcsrgv!thomson)
More information about the Comp.bugs.4bsd.ucb-fixes
mailing list