From 6a81b1f5a423aa5ec237c085c94bdc0a6cfd9e5d Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Thu, 26 Jul 2012 10:45:10 -0400 Subject: [PATCH] Avoid double-free on error in evbuffer_add_file. Found by coverity. --- buffer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/buffer.c b/buffer.c index 38048d40..89311af5 100644 --- a/buffer.c +++ b/buffer.c @@ -3184,7 +3184,8 @@ evbuffer_add_file(struct evbuffer *buf, int fd, ev_off_t offset, ev_off_t length if (!seg) return -1; r = evbuffer_add_file_segment(buf, seg, 0, length); - evbuffer_file_segment_free(seg); + if (r == 0) + evbuffer_file_segment_free(seg); return r; }