summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>1998-02-24 04:09:50 +0000
committerTom Yu <tlyu@mit.edu>1998-02-24 04:09:50 +0000
commitfa6a2e9319cf37780213e40dd7c07daeecdce60a (patch)
tree8fb8a37a45375d51b26dd0142b4962f7c67f208e
parentafe12d1cd4617fea327e5216c97f56a1f5f80698 (diff)
downloadkrb5-fa6a2e9319cf37780213e40dd7c07daeecdce60a.tar.gz
krb5-fa6a2e9319cf37780213e40dd7c07daeecdce60a.tar.xz
krb5-fa6a2e9319cf37780213e40dd7c07daeecdce60a.zip
* utility.c (ptyflush, netflush): Explicitly reset SIGCHLD handler
before calling cleanup(). [telnet/546] * telnetd.c (telnet): Explicitly reset SIGCHLD handler before calling cleanup(). [telnet/546] * state.c (dooption): Explicitly reset SIGCHLD handler before calling cleanup(). [telnet/546] git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@10471 dc483132-0cff-0310-8789-dd5450dbe970
-rw-r--r--src/appl/telnet/telnetd/ChangeLog11
-rw-r--r--src/appl/telnet/telnetd/state.c1
-rw-r--r--src/appl/telnet/telnetd/telnetd.c1
-rw-r--r--src/appl/telnet/telnetd/utility.c2
4 files changed, 15 insertions, 0 deletions
diff --git a/src/appl/telnet/telnetd/ChangeLog b/src/appl/telnet/telnetd/ChangeLog
index ca8b999e9..4bdfd7311 100644
--- a/src/appl/telnet/telnetd/ChangeLog
+++ b/src/appl/telnet/telnetd/ChangeLog
@@ -1,3 +1,14 @@
+Mon Feb 23 22:58:22 1998 Tom Yu <tlyu@mit.edu>
+
+ * utility.c (ptyflush, netflush): Explicitly reset SIGCHLD handler
+ before calling cleanup(). [telnet/546]
+
+ * telnetd.c (telnet): Explicitly reset SIGCHLD handler before
+ calling cleanup(). [telnet/546]
+
+ * state.c (dooption): Explicitly reset SIGCHLD handler before
+ calling cleanup(). [telnet/546]
+
Wed Feb 18 15:38:31 1998 Tom Yu <tlyu@mit.edu>
* Makefile.in: Remove trailing slash from thisconfigdir. Fix up
diff --git a/src/appl/telnet/telnetd/state.c b/src/appl/telnet/telnetd/state.c
index afca74c97..46feffbb9 100644
--- a/src/appl/telnet/telnetd/state.c
+++ b/src/appl/telnet/telnetd/state.c
@@ -947,6 +947,7 @@ dooption(option)
send_will(TELOPT_LOGOUT, 0);
set_my_state_will(TELOPT_LOGOUT);
(void)netflush();
+ (void)signal(SIGCHLD, SIG_DFL);
cleanup(0);
/* NOT REACHED */
break;
diff --git a/src/appl/telnet/telnetd/telnetd.c b/src/appl/telnet/telnetd/telnetd.c
index 54fc12a39..983747286 100644
--- a/src/appl/telnet/telnetd/telnetd.c
+++ b/src/appl/telnet/telnetd/telnetd.c
@@ -1501,6 +1501,7 @@ telnet(f, p, host)
if (FD_ISSET(p, &obits) && (pfrontp - pbackp) > 0)
ptyflush();
}
+ (void) signal(SIGCHLD, SIG_DFL);
cleanup(0);
} /* end of telnet */
diff --git a/src/appl/telnet/telnetd/utility.c b/src/appl/telnet/telnetd/utility.c
index eb31a76a1..8f888bc02 100644
--- a/src/appl/telnet/telnetd/utility.c
+++ b/src/appl/telnet/telnetd/utility.c
@@ -122,6 +122,7 @@ ptyflush()
if (n < 0) {
if (errno == EWOULDBLOCK || errno == EINTR)
return;
+ (void)signal(SIGCHLD, SIG_DFL);
cleanup(0);
}
pbackp += n;
@@ -287,6 +288,7 @@ netflush()
if (n < 0) {
if (errno == EWOULDBLOCK || errno == EINTR)
return;
+ (void)signal(SIGCHLD, SIG_DFL);
cleanup(0);
}
nbackp += n;