		3) intrEXIT() loops on abort

From: tekmdp!duke!chico!harpo!mhtsa!ihnss!ucbvax!decvax!ittvax!swatt
Date: Mon Nov 30 08:37:25 1981
Sibject: uucico segmentation fault bug: net.4bsd-bugs,net.v7-bugs

Art Feather (pur-ee!aef) and I have together tracked down a bug in
uucico that causes segmentation faults during sessions which try
to transfer more than 20 files.  The fix is:

	[ another bug fix, noted elsewhere, was removed here ]

This bug is compounded by another uucico bug, in the "intrEXIT()"
routine.  The symptoms were core files in the UUCP spool area which
showed an infinite recursion.  intrEXIT() calls abort (to produce
a core dump), and before doing so resets SIGEMT to the default
(as earlier in uucico, all signals are caught).  Unfortunately,
the abort() routine on VAX uses an illegal instruction trap instead
of an EMT instruction.  The illegal instruction gets vectored to
intrEXIT, which calls abort(), which causes an illegal instruction ...
The fix for that one is:

	/* intrEXIT, in "cico.c" */
	intrEXIT(signo)
	int signo;
	{
		signal(signo, SIG_DFL);
		setuid(getuid());
		abort();
	}

	- Alan S. Watt (decvax!ittvax!swatt)


-------

This was also reported by:

From: teklabs!decvax!microsof!uw-beave!jim
Date: Wed Sep 22 10:32:40 1982


From: teklabs!zehntel!sytek!menlo70!hao!hplabs!sri-unix!v.wales@Ucla-Security
Date: Thu Oct  7 20:49:46 1982
