From: Florian Forster Date: Thu, 9 Jul 2020 10:33:09 +0000 (+0200) Subject: strbuf: Update buf->size if realloc succeeds. X-Git-Tag: 6.0.0-rc0~148^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F3481%2Fhead;p=thirdparty%2Fcollectd.git strbuf: Update buf->size if realloc succeeds. --- diff --git a/src/utils/strbuf/strbuf.c b/src/utils/strbuf/strbuf.c index b0b5da186..d72db6a78 100644 --- a/src/utils/strbuf/strbuf.c +++ b/src/utils/strbuf/strbuf.c @@ -135,10 +135,13 @@ void strbuf_reset(strbuf_t *buf) { /* Truncate the buffer to the page size. This is deemed a good compromise * between freeing memory (after a large buffer has been constructed) and * performance (avoid unnecessary allocations). */ - if (buf->size > strbuf_pagesize()) { - char *new_ptr = realloc(buf->ptr, strbuf_pagesize()); - if (new_ptr != NULL) + size_t new_size = strbuf_pagesize(); + if (buf->size > new_size) { + char *new_ptr = realloc(buf->ptr, new_size); + if (new_ptr != NULL) { buf->ptr = new_ptr; + buf->size = new_size; + } } }