aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobbie Harwood <rharwood@redhat.com>2018-11-05 13:49:52 -0500
committerGreg Hudson <ghudson@mit.edu>2018-11-05 17:54:47 -0500
commitd002daf4d7ad0db5d88a36b9dbbece12d7eaf9ff (patch)
treed4e212d5928912dced2831414831c183a383f729
parentb2c1af005b139dd1b4a6dd827b302b6fd1b09358 (diff)
downloadkrb5-d002daf4d7ad0db5d88a36b9dbbece12d7eaf9ff.zip
krb5-d002daf4d7ad0db5d88a36b9dbbece12d7eaf9ff.tar.gz
krb5-d002daf4d7ad0db5d88a36b9dbbece12d7eaf9ff.tar.bz2
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". (cherry picked from commit 3e76ea104cdaf22c4537833b203f8aeed1691f18) ticket: 8758 version_fixed: 1.17
-rw-r--r--src/lib/krb5/ccache/cc_kcm.c7
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,