aboutsummaryrefslogtreecommitdiff
path: root/src/agent.c
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2012-04-10 12:04:44 +0200
committerAndreas Schneider <asn@cryptomilk.org>2012-04-10 12:04:44 +0200
commit88d6e6253c6db815d5f58888aaa4d680029c09b2 (patch)
tree12ff9609afa1e639c2765b722df5efafa41853f5 /src/agent.c
parenta3cf1e4acc83d0d8e8116d4d3055b0a754827682 (diff)
downloadlibssh-88d6e6253c6db815d5f58888aaa4d680029c09b2.tar.gz
libssh-88d6e6253c6db815d5f58888aaa4d680029c09b2.tar.xz
libssh-88d6e6253c6db815d5f58888aaa4d680029c09b2.zip
agent: Do not fail reads with EPIPE if there is not enough data to read.
Diffstat (limited to 'src/agent.c')
-rw-r--r--src/agent.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/agent.c b/src/agent.c
index 47d203ac..f5fcae06 100644
--- a/src/agent.c
+++ b/src/agent.c
@@ -114,7 +114,8 @@ static size_t atomicio(ssh_socket s, void *buf, size_t n, int do_read) {
}
return 0;
case 0:
- errno = EPIPE;
+ /* read returns 0 on end-of-file */
+ errno = do_read ? 0 : EPIPE;
return pos;
default:
pos += (size_t) res;