diff --git a/src/parser-helpers.c b/src/parser-helpers.c index be59876..b4d37e1 100644 --- a/src/parser-helpers.c +++ b/src/parser-helpers.c @@ -197,9 +197,11 @@ char* tokenMatchStr (parserCtx* ctx) { str[length++] = ctx->lexer->buffer[i]; } else if (ctx->lexer->buffer[i] == 'e') { - str = realloc(str, total+3); + char *t = realloc(str, total+3); memset(&str[total+1], sizeof(str[0])*3, 0); total += 3; + if (t) + str = t; str[length++] = '\\'; str[length++] = '0'; diff --git a/src/vector.c b/src/vector.c index 38f1f99..1bc86a4 100644 --- a/src/vector.c +++ b/src/vector.c @@ -27,7 +27,9 @@ void vectorFreeObjs (vector* v, vectorDtor dtor) { static void vectorResize (vector* v, int size) { v->capacity = size; - v->buffer = realloc(v->buffer, v->capacity*sizeof(void*)); + void **t = realloc(v->buffer, v->capacity*sizeof(void*)); + if (t) + v->buffer = t; } int vectorPush (vector* v, void* item) {