When falling back to the normal rlogin, clear the signal mask, so that
authorTheodore Tso <tytso@mit.edu>
Fri, 28 Mar 1997 06:07:24 +0000 (06:07 +0000)
committerTheodore Tso <tytso@mit.edu>
Fri, 28 Mar 1997 06:07:24 +0000 (06:07 +0000)
the child rlogin handles SIGUSR1 (which is used for window size
changes) correctly.  [krb5-appl/335]

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@10032 dc483132-0cff-0310-8789-dd5450dbe970

src/appl/bsd/ChangeLog
src/appl/bsd/krlogin.c

index df05407a852750e90792aca57a1197dc3a24e801..e588b00005aef3e6de7161339b5c3df0f6642808 100644 (file)
@@ -1,3 +1,10 @@
+Fri Mar 28 01:05:27 1997  Theodore Y. Ts'o  <tytso@mit.edu>
+
+       * krlogin.c (try_normal): When falling back to the normal rlogin,
+               clear the signal mask, so that the child rlogin handles
+               SIGUSR1 (which is used for window size changes) correctly.
+               [krb5-appl/335]
+
 Tue Mar 18 12:34:03 1997  Sam Hartman  <hartmans@luminous.MIT.EDU>
 
  [326] * login.c(doit):  Preserve terminal even without -p.
index b4288773ff2a206eb2d3c60aca3f3c90a6cdd30b..e0bb4e83d71bc5b766b984f65061dd4e1307c67c 100644 (file)
@@ -1565,6 +1565,10 @@ void try_normal(argv)
      char **argv;
 {
     register char *host;
+#ifdef POSIX_SIGNALS
+    struct sigaction sa;
+    sigest_t mask;
+#endif
     
 #ifndef KRB5_ATHENA_COMPAT
     if (encrypt_flag)
@@ -1582,6 +1586,11 @@ void try_normal(argv)
     if (!strcmp(host, "rlogin"))
       argv++;
     
+#ifdef POSIX_SIGNALS
+    sigemptyset(&mask)
+    sigprocmask(SIG_SETMASK, &mask, NULL);
+#endif
+
     execv(UCB_RLOGIN, argv);
     perror("exec");
     exit(1);