From 5a81de94f2db3c3b39212cfa9f07b94d3fef4f11 Mon Sep 17 00:00:00 2001 From: David Goulet <dgoulet@riseup.net> Date: Fri, 17 Feb 2017 14:19:34 -0500 Subject: [PATCH] Handle error code in trees_ostream_send_header() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Properly handle the returned value of o_stream_send() so we make sure the entire header was sent else error on that. Reported-by: Tomasz Miąsko <tomasz.miasko@gmail.com> Signed-off-by: David Goulet <dgoulet@riseup.net> --- src/trees-ostream.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/trees-ostream.c b/src/trees-ostream.c index ac55ffc..961e90c 100644 --- a/src/trees-ostream.c +++ b/src/trees-ostream.c @@ -66,10 +66,17 @@ trees_ostream_send_header(struct trees_ostream *sstream) /* The header here consists of a magic number. */ ssize_t ret = o_stream_send(sstream->ostream.parent, header, sizeof(header)); + if (ret != sizeof(header)) { + o_stream_copy_error_from_parent(&sstream->ostream); + goto err; + } + #ifdef DEBUG_STREAMS - sstream->out_byte_count += sizeof(header); + sstream->out_byte_count += ret; #endif return ret; +err: + return -1; } static ssize_t -- GitLab