Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: Notesfiles; site convex.UUCP
Path: utzoo!linus!vaxine!wjh12!genrad!decvax!ucbvax!ucbcad!tektronix!uw-beaver!cornell!vax135!houxz!houxm!ihnp4!inuxc!pur-ee!uiucdcs!convex!hosking
From: hosking@convex.UUCP
Newsgroups: net.bugs.4bsd
Subject: 4.2BSD tty.c bug - (nf)
Message-ID: <33500006@convex.UUCP>
Date: Sat, 16-Jun-84 01:25:00 EDT
Article-I.D.: convex.33500006
Posted: Sat Jun 16 01:25:00 1984
Date-Received: Tue, 19-Jun-84 01:19:15 EDT
Lines: 21
Nf-ID: #N:convex:33500006:000:510
Nf-From: convex!hosking    Jun 15 00:25:00 1984

#N:convex:33500006:000:510
convex!hosking    Jun 15 00:25:00 1984

In 4.2BSD tty.c, routine "ttwrite", there appears to be a bug with the way
interrupt masking is done.  Assuming you reach "ovhiwat:", interrupts are
masked with s = spl5();.  However, there are at least 2 ways to leave this
code without a corresponding splx(s).  Oops!

ovhiwat:
	s = spl5();
	.
	.
	.
	if (tp->t_state&TS_NBIO) {
		if (uio->uio_resid == cnt)
			return (EWOULDBLOCK);	<----------
		return (0);			<----------
	}
					Doug Hosking
					Convex Computer Corp.
					..{allegra, ihnp4}!convex!hosking