krb5 commit: Fix spurious errors from kcmio_unix_socket_write

Greg Hudson ghudson at mit.edu
Mon Nov 5 17:52:38 EST 2018


https://github.com/krb5/krb5/commit/3e76ea104cdaf22c4537833b203f8aeed1691f18
commit 3e76ea104cdaf22c4537833b203f8aeed1691f18
Author: Robbie Harwood <rharwood at redhat.com>
Date:   Mon Nov 5 13:49:52 2018 -0500

    Fix spurious errors from kcmio_unix_socket_write
    
    Commit 33634a940166d0b21c3105bab8dcf5550fbbd678 accidentally changed
    the return value from kcmio_unix_socket_write to be the result of the
    write call.  Most commonly this resulted in it returning 8, which led
    to many commands failing with "Exec format error".
    
    ticket: 8758 (new)
    tags: pullup
    target_version: 1.17-next

 src/lib/krb5/ccache/cc_kcm.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/lib/krb5/ccache/cc_kcm.c b/src/lib/krb5/ccache/cc_kcm.c
index 2b9f82e..092ab7d 100644
--- a/src/lib/krb5/ccache/cc_kcm.c
+++ b/src/lib/krb5/ccache/cc_kcm.c
@@ -308,8 +308,9 @@ kcmio_unix_socket_write(krb5_context context, struct kcmio *io, void *request,
 
     for (;;) {
         ret = krb5int_net_writev(context, io->fd, sg, 2);
-        if (ret < 0)
-            ret = errno;
+        if (ret >= 0)
+            return 0;
+        ret = errno;
         if (ret != EPIPE || reconnected)
             return ret;
 
@@ -327,8 +328,6 @@ kcmio_unix_socket_write(krb5_context context, struct kcmio *io, void *request,
             return ret;
         reconnected = TRUE;
     }
-
-    return ret;
 }
 
 /* Read a KCM reply: 4-byte big-endian length, 4-byte big-endian status code,


More information about the cvs-krb5 mailing list