From: Andre Noll Date: Sun, 11 Dec 2011 19:23:14 +0000 (+0100) Subject: sc_send_result(): Error out on short writes. X-Git-Tag: v0.4.10~11^2~6 X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=commitdiff_plain;h=2e2f91c92bbdd4107925bcaf521242c588afbfe4;hp=5ac6b5f44f64ff9a2f0e01a65013da829edfab9e sc_send_result(): Error out on short writes. This affects only afs command handlers, where short writes should never happen as the socket fd is set to blocking mode. But still. --- diff --git a/afs.c b/afs.c index 46ed6913..73f2c65a 100644 --- a/afs.c +++ b/afs.c @@ -593,10 +593,14 @@ out: int sc_send_result(struct osl_object *result, void *private) { struct stream_cipher_context *scc = private; + int ret; if (!result->size) return 1; - return sc_send_bin_buffer(scc, result->data, result->size); + ret = sc_send_bin_buffer(scc, result->data, result->size); + if (ret < 0 || ret == result->size) + return ret; + return -E_SHORT_WRITE; } int com_select(struct stream_cipher_context *scc, int argc, char * const * const argv)