From e1f258171fb4a6d415d40241be00d7eda43f6110 Mon Sep 17 00:00:00 2001 From: Al Date: Fri, 13 Jan 2017 16:52:41 -0500 Subject: [PATCH] [fix] handle cstring_array_from_char_array where char_array is NULL or 0-length --- src/string_utils.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/string_utils.c b/src/string_utils.c index 7bfecb09..64984564 100644 --- a/src/string_utils.c +++ b/src/string_utils.c @@ -711,16 +711,17 @@ cstring_array *cstring_array_new_size(size_t size) { cstring_array *cstring_array_from_char_array(char_array *str) { cstring_array *array = malloc(sizeof(cstring_array)); - if (array == NULL) return NULL; + if (array == NULL || str == NULL) return NULL; array->str = str; array->indices = uint32_array_new_size(1); uint32_array_push(array->indices, 0); char *ptr = str->a; - uint32_t i = 0; - for (i = 0; i < str->n - 1; i++, ptr++) { - if (*ptr == '\0') { - uint32_array_push(array->indices, i + 1); + if (str->n > 0) { + for (uint32_t i = 0; i < str->n - 1; i++, ptr++) { + if (*ptr == '\0') { + uint32_array_push(array->indices, i + 1); + } } } return array;