diff --git a/haversine_02/src/json/dstring.c b/haversine_02/src/json/dstring.c index 56d402b..ac2da1e 100644 --- a/haversine_02/src/json/dstring.c +++ b/haversine_02/src/json/dstring.c @@ -29,6 +29,10 @@ dstr_t *dstr_with_capacity(u64 capacity) { } dstr_t *dstr_from_string(const char *str) { + if (!str) { + return NULL; + } + u64 length = strlen(str); u64 capacity = length * CAPACITY_SCALAR; @@ -46,7 +50,7 @@ dstr_t *dstr_from_string(const char *str) { } void dstr_update(dstr_t **dst, const char *src) { - if (!(*dst)) { + if (!dst || !(*dst)) { return; } @@ -78,7 +82,7 @@ void dstr_update(dstr_t **dst, const char *src) { } void dstr_free(dstr_t **str) { - if (!(*str)) { + if (!str || !(*str)) { return; } @@ -87,7 +91,7 @@ void dstr_free(dstr_t **str) { } void dstr_concat(dstr_t **dst, const char *src) { - if (!(*dst)) { + if (!dst || !(*dst)) { return; } @@ -109,7 +113,7 @@ void dstr_concat(dstr_t **dst, const char *src) { } void dstr_append(dstr_t **dst, char c) { - if (!(*dst)) { + if (!dst || !(*dst)) { return; } @@ -125,6 +129,10 @@ void dstr_append(dstr_t **dst, char c) { } void dstr_resize(dstr_t **str) { + if (!str || !(*str)) { + return; + } + u64 capacity = (*str)->size; dstr_t *tmp = (dstr_t *)realloc(*str, sizeof(dstr_t) + capacity + 1); diff --git a/haversine_02/src/json/json_entities.c b/haversine_02/src/json/json_entities.c index 4b7f64e..f95b7ef 100644 --- a/haversine_02/src/json/json_entities.c +++ b/haversine_02/src/json/json_entities.c @@ -131,8 +131,16 @@ void free_json(jentity_t **entity) { dstr_free(&(entt_ptr->pair.key)); } + if (!value) { + return; + } + switch (value->type) { case JVAL_COLLECTION: + if (!(value->collection)) { + break; + } + if (value->collection->begin) { free_json(&(value->collection->begin)); }