From 3f2062ccb2bd6234ef5d47ccbea7f3b07f687eac Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Wed, 17 Feb 2016 20:46:01 -0800 Subject: [PATCH] config-parser: Check malloc and strdup returns Signed-off-by: Bryce Harrington Reviewed-by: Marek Chalupa --- shared/config-parser.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/shared/config-parser.c b/shared/config-parser.c index a50773ba..22564697 100644 --- a/shared/config-parser.c +++ b/shared/config-parser.c @@ -312,7 +312,15 @@ config_add_section(struct weston_config *config, const char *name) struct weston_config_section *section; section = malloc(sizeof *section); + if (section == NULL) + return NULL; + section->name = strdup(name); + if (section->name == NULL) { + free(section); + return NULL; + } + wl_list_init(§ion->entry_list); wl_list_insert(config->section_list.prev, §ion->link); @@ -326,8 +334,22 @@ section_add_entry(struct weston_config_section *section, struct weston_config_entry *entry; entry = malloc(sizeof *entry); + if (entry == NULL) + return NULL; + entry->key = strdup(key); + if (entry->key == NULL) { + free(entry); + return NULL; + } + entry->value = strdup(value); + if (entry->value == NULL) { + free(entry->key); + free(entry); + return NULL; + } + wl_list_insert(section->entry_list.prev, &entry->link); return entry;