config-parser: Check malloc and strdup returns

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Marek Chalupa <mchqwerty@gmail.com>
diff --git a/shared/config-parser.c b/shared/config-parser.c
index a50773b..2256469 100644
--- a/shared/config-parser.c
+++ b/shared/config-parser.c
@@ -312,7 +312,15 @@
 	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(&section->entry_list);
 	wl_list_insert(config->section_list.prev, &section->link);
 
@@ -326,8 +334,22 @@
 	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;