45 lines
1.5 KiB
Diff
45 lines
1.5 KiB
Diff
From 5d925544465008f1695b3595531443aa78613365 Mon Sep 17 00:00:00 2001
|
|
From: Robbie Harwood <rharwood@redhat.com>
|
|
Date: Mon, 5 Nov 2018 13:49:52 -0500
|
|
Subject: [PATCH] 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
|
|
|
|
(cherry picked from commit 3e76ea104cdaf22c4537833b203f8aeed1691f18)
|
|
---
|
|
src/lib/krb5/ccache/cc_kcm.c | 7 +++----
|
|
1 file changed, 3 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/src/lib/krb5/ccache/cc_kcm.c b/src/lib/krb5/ccache/cc_kcm.c
|
|
index 2b9f82e32..092ab7daf 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,
|