From ba59923ab8cade9f2b306b4ae35c2f752786a8d3 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Sun, 30 Nov 2014 11:05:40 -0500 Subject: [PATCH] Fix evbuffer_peek() with len==-1 and start_at non-NULL. --- buffer.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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) {