From db994dacea855c113b0bfe2e7631228818711da8 Mon Sep 17 00:00:00 2001 From: Andrei Emeltchenko Date: Mon, 27 Jan 2014 10:36:09 +0200 Subject: [PATCH] unit/ringbuf: Fix memory leak free allocated memory before exit --- src/shared/ringbuf.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/shared/ringbuf.c b/src/shared/ringbuf.c index f9c437652..1add53326 100644 --- a/src/shared/ringbuf.c +++ b/src/shared/ringbuf.c @@ -235,9 +235,14 @@ int ringbuf_vprintf(struct ringbuf *ringbuf, const char *format, va_list ap) return -1; len = vasprintf(&str, format, ap); - if (len < 0 || (size_t) len > avail) + if (len < 0) return -1; + if ((size_t) len > avail) { + free(str); + return -1; + } + /* Determine possible length of string before wrapping */ offset = ringbuf->in & (ringbuf->size - 1); end = MIN((size_t) len, ringbuf->size - offset); -- 2.47.3