diff --git a/client/tinycbor/open_memstream.c b/client/tinycbor/open_memstream.c index 0085641f9..043079143 100644 --- a/client/tinycbor/open_memstream.c +++ b/client/tinycbor/open_memstream.c @@ -65,11 +65,15 @@ static RetType write_to_buffer(void *cookie, const char *data, LenType len) { if (newsize >= b->alloc) { // NB! one extra byte is needed to avoid buffer overflow at close_buffer // make room size_t newalloc = newsize + newsize / 2 + 1; // give 50% more room - ptr = realloc(ptr, newalloc); - if (ptr == NULL) { + + char *tmp = realloc(ptr, newalloc); + if ( tmp == NULL ) { free(ptr); return -1; - ) + } else { + ptr = tmp; + } + b->alloc = newalloc; *b->ptr = ptr; }