From 8e90ee45d2dd77d5de27db717c0385eecc0d3444 Mon Sep 17 00:00:00 2001 From: Al Date: Wed, 25 May 2016 15:50:53 -0400 Subject: [PATCH] [fix] calls and NULL checks --- src/tokens.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/tokens.c b/src/tokens.c index 6c7ae94b..e85183f1 100644 --- a/src/tokens.c +++ b/src/tokens.c @@ -20,7 +20,11 @@ tokenized_string_t *tokenized_string_new_size(size_t len, size_t num_tokens) { inline tokenized_string_t *tokenized_string_new_from_str_size(char *src, size_t len, size_t num_tokens) { tokenized_string_t *self = tokenized_string_new_size(len, num_tokens); - self->str = strndup(src); + self->str = strndup(src, len); + if (self->str == NULL) { + tokenized_string_destroy(self); + return NULL; + } return self; } @@ -37,7 +41,11 @@ void tokenized_string_add_token(tokenized_string_t *self, const char *src, size_ tokenized_string_t *tokenized_string_from_tokens(char *src, token_array *tokens, bool copy_tokens) { tokenized_string_t *self = malloc(sizeof(tokenized_string_t)); - self->str = stdup(src); + self->str = strdup(src); + if (self->str == NULL) { + tokenized_string_destroy(self); + return NULL; + } self->strings = cstring_array_new_size(strlen(src) + tokens->n); if (copy_tokens) { self->tokens = token_array_new_copy(tokens, tokens->n);