From 23524bf85b887adbc513bc015c9530355967bc04 Mon Sep 17 00:00:00 2001 From: Kruzya Date: Sat, 15 Sep 2018 08:55:11 +0300 Subject: examples: Fix memory leaks from realloc errors Make sure to not overwrite the reallocated pointer in realloc() calls to avoid a memleak on memory errors. --- docs/examples/xmlstream.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'docs/examples/xmlstream.c') diff --git a/docs/examples/xmlstream.c b/docs/examples/xmlstream.c index 9ee4a2e88..296ae3b26 100644 --- a/docs/examples/xmlstream.c +++ b/docs/examples/xmlstream.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2017, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2018, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -69,14 +69,15 @@ static void characterDataHandler(void *userData, const XML_Char *s, int len) struct ParserStruct *state = (struct ParserStruct *) userData; struct MemoryStruct *mem = &state->characters; - mem->memory = realloc(mem->memory, mem->size + len + 1); - if(mem->memory == NULL) { + char *ptr = realloc(mem->memory, mem->size + len + 1); + if(!ptr) { /* Out of memory. */ fprintf(stderr, "Not enough memory (realloc returned NULL).\n"); state->ok = 0; return; } + mem->memory = ptr; memcpy(&(mem->memory[mem->size]), s, len); mem->size += len; mem->memory[mem->size] = 0; -- cgit v1.2.3