Blame krb5-1.11.3-client-loop.patch
|
Nalin Dahyabhai |
222449e |
Tweaked for 1.11.3.
|
|
Nalin Dahyabhai |
222449e |
|
|
Nalin Dahyabhai |
222449e |
commit 53e5c850e05f011e9e7f25c2032aec51d8b352a9
|
|
Nalin Dahyabhai |
222449e |
Author: Viktor Dukhovni <viktor@twosigma.com>
|
|
Nalin Dahyabhai |
222449e |
Date: Tue Jun 25 12:27:42 2013 -0400
|
|
Nalin Dahyabhai |
222449e |
|
|
Nalin Dahyabhai |
222449e |
Fix spin loop reading from KDC TCP socket
|
|
Nalin Dahyabhai |
222449e |
|
|
Nalin Dahyabhai |
222449e |
In the k5_sendto code for reading from a TCP socket, detect
|
|
Nalin Dahyabhai |
222449e |
end-of-stream when reading the length. Otherwise we can get stuck in
|
|
Nalin Dahyabhai |
222449e |
an infinite loop of poll() and read().
|
|
Nalin Dahyabhai |
222449e |
|
|
Nalin Dahyabhai |
222449e |
[ghudson@mit.edu: commit message]
|
|
Nalin Dahyabhai |
222449e |
|
|
Nalin Dahyabhai |
222449e |
ticket: 7508
|
|
Nalin Dahyabhai |
222449e |
target_version: 1.11.4
|
|
Nalin Dahyabhai |
222449e |
tags: pullup
|
|
Nalin Dahyabhai |
222449e |
|
|
Nalin Dahyabhai |
222449e |
diff --git a/src/lib/krb5/os/sendto_kdc.c b/src/lib/krb5/os/sendto_kdc.c
|
|
Nalin Dahyabhai |
222449e |
index 3e4ec7e..3c31d9f 100644
|
|
Nalin Dahyabhai |
222449e |
--- a/src/lib/krb5/os/sendto_kdc.c
|
|
Nalin Dahyabhai |
222449e |
+++ b/src/lib/krb5/os/sendto_kdc.c
|
|
Nalin Dahyabhai |
222449e |
@@ -853,9 +853,9 @@ service_tcp_fd(krb5_context context, struct conn_state *conn,
|
|
Nalin Dahyabhai |
222449e |
nread = SOCKET_READ(conn->fd,
|
|
Nalin Dahyabhai |
222449e |
conn->x.in.bufsizebytes + conn->x.in.bufsizebytes_read,
|
|
Nalin Dahyabhai |
222449e |
4 - conn->x.in.bufsizebytes_read);
|
|
Nalin Dahyabhai |
222449e |
- if (nread < 0) {
|
|
Nalin Dahyabhai |
222449e |
+ if (nread <= 0) {
|
|
Nalin Dahyabhai |
222449e |
+ e = nread ? SOCKET_ERRNO : ECONNRESET;
|
|
Nalin Dahyabhai |
222449e |
TRACE_SENDTO_KDC_TCP_ERROR_RECV_LEN(context, conn, e);
|
|
Nalin Dahyabhai |
222449e |
- e = SOCKET_ERRNO;
|
|
Nalin Dahyabhai |
222449e |
goto kill_conn;
|
|
Nalin Dahyabhai |
222449e |
}
|
|
Nalin Dahyabhai |
222449e |
conn->x.in.bufsizebytes_read += nread;
|