[2341] in Kerberos-V5-bugs

home help back first fref pref prev next nref lref last post

pending/100: krb5b7: telnetd: ttloop() needs to reset read() on EINTR

daemon@ATHENA.MIT.EDU (Jonathan I. Kamens)
Thu Oct 10 12:59:46 1996

Resent-From: gnats@rt-11.MIT.EDU (GNATS Management)
Resent-To: gnats-admin@rt-11.MIT.EDU
Resent-Reply-To: krb5-bugs@MIT.EDU, "Jonathan I. Kamens" <jik@jik.tiac.net>
Date: Tue, 17 Sep 1996 17:16:52 -0400
From: "Jonathan I. Kamens" <jik@jik.tiac.net>
To: krb5-bugs@MIT.EDU, kerberos@MIT.EDU


>Number:         100
>Category:       pending
>Synopsis:       krb5b7: telnetd: ttloop() needs to reset read() on EINTR
>Confidential:   yes
>Severity:       serious
>Priority:       medium
>Responsible:    gnats-admin
>State:          open
>Class:          sw-bug
>Submitter-Id:   unknown
>Arrival-Date:   Thu Oct e 12:57:08 EDT 1996
>Last-Modified:
>Originator:
>Organization:
>Release:
>Environment:
>Description:
>How-To-Repeat:
>Fix:
>Audit-Trail:
>Unformatted:
The ttloop() function in telnetd needs to retry read() if it gets a
negative return value and errno is EINTR.  Here's a patch:

--- telnetd/utility.c	1996/09/17 20:08:33	1.1
+++ telnetd/utility.c	1996/09/17 20:41:40	1.2
@@ -59,8 +59,11 @@
     if (nfrontp-nbackp) {
 	netflush();
     }
+read_again:
     ncc = read(net, netibuf, sizeof netibuf);
     if (ncc < 0) {
+	if (errno == EINTR)
+	    goto read_again;
 	syslog(LOG_INFO, "ttloop:  read: %m");
 	exit(1);
     } else if (ncc == 0) {

home help back first fref pref prev next nref lref last post