]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
_gnutls_buffer_resize: account for unused area if AGGRESSIVE_REALLOC
authorDaiki Ueno <ueno@gnu.org>
Wed, 10 Mar 2021 15:11:29 +0000 (16:11 +0100)
committerDaiki Ueno <ueno@gnu.org>
Wed, 10 Mar 2021 17:27:08 +0000 (18:27 +0100)
Signed-off-by: Daiki Ueno <ueno@gnu.org>
lib/str.c

index 506fe172108620312504f5798f9ae576b560c6bf..bc20ebb04fbffd3d8dbc0aa36fc75fc069c0db12 100644 (file)
--- a/lib/str.c
+++ b/lib/str.c
@@ -155,12 +155,12 @@ int _gnutls_buffer_resize(gnutls_buffer_st * dest, size_t new_size)
 
        unused = MEMSUB(dest->data, dest->allocd);
        dest->allocd =
-           gnutls_realloc_fast(dest->allocd, new_size);
+           gnutls_realloc_fast(dest->allocd, new_size + unused);
        if (dest->allocd == NULL) {
                gnutls_assert();
                return GNUTLS_E_MEMORY_ERROR;
        }
-       dest->max_length = new_size;
+       dest->max_length = new_size + unused;
        dest->data = dest->allocd + unused;
 
        return 0;