sigset botch

utzoo!decvax!duke!mcnc!unc!dopey.smb utzoo!decvax!duke!mcnc!unc!dopey.smb
Thu Mar 11 13:03:48 AEST 1982


If a sighold is done, a subsequent sigset call will return SIG_HOLD
rather than a routine address.  An attempt to use this value will store
a bad address -- 3! -- so that any occurrence of the signal will send
the program flaming down the tubes.  That is, a sequence like this will
fail (miserably):


	sighold(SIGINT);
	...
	s = sigset(SIGINT, myint);
	....
	sigset(SIGINT, s);


It's a problem because closed subroutine often like to take their own
actions with knowing the current state of affairs.  I've tripped over
this in some versions of ucbmail.



More information about the Comp.bugs.4bsd.ucb-fixes mailing list