From 2fe6555fcf7873925c7d8a4e70dfa173d9a61fd3 Mon Sep 17 00:00:00 2001 From: Juliusz Sosinowicz Date: Tue, 20 Dec 2022 13:53:03 +0100 Subject: [PATCH] DtlsMsgCombineFragBuckets: Remove realloc dependency --- src/internal.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/internal.c b/src/internal.c index c58ae3a1e..9f5f99bc4 100644 --- a/src/internal.c +++ b/src/internal.c @@ -8310,10 +8310,19 @@ static DtlsFragBucket* DtlsMsgCombineFragBuckets(DtlsMsg* msg, } { +#ifdef XREALLOC DtlsFragBucket* tmp = (DtlsFragBucket*)XREALLOC(*chosenBucket, sizeof(DtlsFragBucket) + newSz, heap, DYNAMIC_TYPE_DTLS_FRAG); +#else + DtlsFragBucket* tmp = (DtlsFragBucket*)XMALLOC( + sizeof(DtlsFragBucket) + newSz, heap, DYNAMIC_TYPE_DTLS_FRAG); +#endif if (tmp == NULL) return NULL; +#ifndef XREALLOC + XMEMCPY(tmp, *chosenBucket, sizeof(DtlsFragBucket) + + (*chosenBucket)->m.m.sz); +#endif if (chosenBucket == &next) { /* Update the link */ DtlsFragBucket* beforeNext = cur; @@ -8321,6 +8330,9 @@ static DtlsFragBucket* DtlsMsgCombineFragBuckets(DtlsMsg* msg, beforeNext = beforeNext->m.m.next; beforeNext->m.m.next = tmp; } +#ifndef XREALLOC + XFREE(*chosenBucket, heap, DYNAMIC_TYPE_DTLS_FRAG); +#endif newBucket = *chosenBucket = tmp; }