diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2012-10-08 19:47:46 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2012-10-09 11:09:34 +0200 |
commit | 6acce40a28b4f74806e1928ec6bdbe2d9da43b2c (patch) | |
tree | 4e65bad2abad364ffc13918de7bd601bcd4675c3 | |
parent | 41269874f51b794ef93e05766df39dee010956f3 (diff) | |
download | libssh-6acce40a28b4f74806e1928ec6bdbe2d9da43b2c.tar.gz libssh-6acce40a28b4f74806e1928ec6bdbe2d9da43b2c.tar.xz libssh-6acce40a28b4f74806e1928ec6bdbe2d9da43b2c.zip |
scp: Check return value of ssh_channel_poll.
Found by Coverity.
-rw-r--r-- | src/scp.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -419,7 +419,11 @@ int ssh_scp_write(ssh_scp scp, const void *buffer, size_t len){ if(scp->processed + len > scp->filelen) len = (size_t) (scp->filelen - scp->processed); /* hack to avoid waiting for window change */ - ssh_channel_poll(scp->channel,0); + r = ssh_channel_poll(scp->channel, 0); + if (r == SSH_ERROR) { + scp->state = SSH_SCP_ERROR; + return SSH_ERROR; + } w=ssh_channel_write(scp->channel,buffer,len); if(w != SSH_ERROR) scp->processed += w; |