From: Nick Mathewson Date: Sun, 30 Nov 2014 16:05:40 +0000 (-0500) Subject: Fix evbuffer_peek() with len==-1 and start_at non-NULL. X-Git-Tag: release-2.1.5-beta~15^2~2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ba59923ab8cade9f2b306b4ae35c2f752786a8d3;p=libevent Fix evbuffer_peek() with len==-1 and start_at non-NULL. --- diff --git a/buffer.c b/buffer.c index f5a52104..231f1914 100644 --- a/buffer.c +++ b/buffer.c @@ -2742,7 +2742,10 @@ evbuffer_peek(struct evbuffer *buffer, ev_ssize_t len, if (n_vec == 0 && len < 0) { /* If no vectors are provided and they asked for "everything", * pretend they asked for the actual available amount. */ - len = buffer->total_len - len_so_far; + len = buffer->total_len; + if (start_at) { + len -= start_at->pos; + } } while (chain) {