commit-inetutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU Inetutils branch, master, updated. inetutils-1_9_1-189-g171ce


From: Mats Erik Andersson
Subject: [SCM] GNU Inetutils branch, master, updated. inetutils-1_9_1-189-g171cec6
Date: Fri, 12 Oct 2012 00:57:37 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Inetutils ".

The branch, master has been updated
       via  171cec6e1ded44e7a6e394d8728c5a8cf2562940 (commit)
      from  48c58b140e5eb42dc2ea831d65eb516cae320b62 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.savannah.gnu.org/cgit/inetutils.git/commit/?id=171cec6e1ded44e7a6e394d8728c5a8cf2562940


commit 171cec6e1ded44e7a6e394d8728c5a8cf2562940
Author: Mats Erik Andersson <address@hidden>
Date:   Thu Oct 11 22:35:02 2012 +0200

    rlogind: Name specification in Kerberos mode.
    
    Improve realm detection and handle urgent
    data in non-encrypted Kerberos mode.

diff --git a/ChangeLog b/ChangeLog
index 75a8674..61e492d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,28 @@
 2012-10-11  Mats Erik Andersson  <address@hidden>
 
+       rlogind: Server and realm detection.
+
+       * libinetutils/shishi.c (get_auth): Parse server
+       name input using shishi_parse_name(), but only if
+       `srvname' has some content.  Retrieve default
+       realm by calling shishi_realm_default(), and
+       pass it to shishi_hostkeys_for_serverrealm().
+
+       rlogin: Handle urgent data for non-encrypted Kerberos.
+       This enables window sizing and buffer flushing.
+
+       * src/rlogin.c (main): Set sigaction flag SA_RESTART
+       when installing SIGURG and SIGUSR1; a portability fix.
+       (oob) [SHISHI]: Assign urgent data `rcvbuf[4]' to MARK
+       whenever `use_kerberos' is true.  This is then compared
+       to different TIOCPKT_*.
+
+       * src/rlogind.c (fatal): Replace an empty format
+       input by the string "unspecified error", in order
+       to protect against segfaults in vsnprintf().
+
+2012-10-11  Mats Erik Andersson  <address@hidden>
+
        rlogin: Read urgent data also when Kerberos has
        been disabled.  Needed for window sizing.
 
diff --git a/libinetutils/shishi.c b/libinetutils/shishi.c
index 1df3195..90c79a8 100644
--- a/libinetutils/shishi.c
+++ b/libinetutils/shishi.c
@@ -290,7 +290,7 @@ get_auth (int infd, Shishi ** handle, Shishi_ap ** ap,
   /* PROTOCOL VERSION */
   char krb5kcmd1[] = "KCMDV0.1";
   char krb5kcmd2[] = "KCMDV0.2";
-  char *servername, *server, *realm;
+  char *servername, *server = NULL, *realm = NULL;
 
   *err_msg = NULL;
   /* Get key for the server. */
@@ -306,11 +306,14 @@ get_auth (int infd, Shishi ** handle, Shishi_ap ** ap,
   if (rc != SHISHI_OK)
     return rc;
 
-  rc = shishi_parse_name (*handle, srvname, &server, &realm);
-  if (rc != SHISHI_OK)
+  if (srvname && *srvname)
     {
-      *err_msg = shishi_strerror (rc);
-      return rc;
+      rc = shishi_parse_name (*handle, srvname, &server, &realm);
+      if (rc != SHISHI_OK)
+       {
+         *err_msg = shishi_strerror (rc);
+         return rc;
+       }
     }
 
   if (server && *server)
@@ -351,7 +354,8 @@ get_auth (int infd, Shishi ** handle, Shishi_ap ** ap,
        }
     }
 
-  key = shishi_hostkeys_for_server (*handle, servername);
+  key = shishi_hostkeys_for_serverrealm (*handle, servername,
+                                        shishi_realm_default (*handle));
   free (servername);
   if (!key)
     {
diff --git a/src/rlogin.c b/src/rlogin.c
index 6d0c0fc..97d94a5 100644
--- a/src/rlogin.c
+++ b/src/rlogin.c
@@ -456,7 +456,7 @@ main (int argc, char *argv[])
    * a signal by the time that they are unblocked later on.
    */
   sigemptyset (&sa.sa_mask);
-  sa.sa_flags = 0;
+  sa.sa_flags = SA_RESTART;
   sa.sa_handler = copytochild;
   (void) sigaction (SIGURG, &sa, NULL);
   sa.sa_handler = writeroob;
@@ -1177,7 +1177,9 @@ oob (int signo _GL_UNUSED_PARAMETER)
   rcvd = 0;
 
 #ifdef SHISHI
-  if (!use_kerberos)
+  if (use_kerberos)
+    mark = rcvbuf[4];          /* Payload in fifth byte.  */
+  else
 #endif
     while (recv (rem, &mark, 1, MSG_OOB) < 0)
       {
diff --git a/src/rlogind.c b/src/rlogind.c
index 064cc50..c169ef5 100644
--- a/src/rlogind.c
+++ b/src/rlogind.c
@@ -1976,6 +1976,6 @@ rlogind_error (int f, int syserr, const char *msg, ...)
 void
 fatal (int f, const char *msg, int syserr)
 {
-  rlogind_error (f, syserr, msg);
+  rlogind_error (f, syserr, (msg && *msg) ? msg : "unspecified error");
   exit (EXIT_FAILURE);
 }

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog             |   23 +++++++++++++++++++++++
 libinetutils/shishi.c |   16 ++++++++++------
 src/rlogin.c          |    6 ++++--
 src/rlogind.c         |    2 +-
 4 files changed, 38 insertions(+), 9 deletions(-)


hooks/post-receive
-- 
GNU Inetutils 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]