diff options
author | Karol Lewandowski <k.lewandowsk@samsung.com> | 2017-12-08 10:53:02 +0100 |
---|---|---|
committer | Karol Lewandowski <k.lewandowsk@samsung.com> | 2017-12-08 10:53:02 +0100 |
commit | 97bb61dbde522c1baf84343a3fe2cb8e7d29b992 (patch) | |
tree | 3751a8e03cc978fb6cc7d31aae46562e6ab707ed | |
parent | 01963589d976314759ba921e84422e5073ddb54a (diff) | |
download | initrd-recovery-97bb61dbde522c1baf84343a3fe2cb8e7d29b992.tar.gz initrd-recovery-97bb61dbde522c1baf84343a3fe2cb8e7d29b992.tar.bz2 initrd-recovery-97bb61dbde522c1baf84343a3fe2cb8e7d29b992.zip |
Fix possible null-pointer dereferencessubmit/tizen/20171211.144513accepted/tizen/unified/20171213.040817
Change-Id: Ifef7e0a02ee9c8a993dd060d51bb0a3420603f54
Signed-off-by: Paweł Szewczyk <p.szewczyk@samsung.com>
-rw-r--r-- | src/system-recovery/recovery-rui.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/system-recovery/recovery-rui.c b/src/system-recovery/recovery-rui.c index 37c4dd5..0deefad 100644 --- a/src/system-recovery/recovery-rui.c +++ b/src/system-recovery/recovery-rui.c @@ -448,7 +448,13 @@ static int labels_list_parse(config_setting_t *root, int **out, for (i = 0; i < num; ++i) { elem = config_setting_get_elem(node, i); + if (!elem) + goto err_nomem; + value = config_setting_get_string(elem); + if (!value) + goto err_nomem; + list[i] = find_string(labels, value); } @@ -456,6 +462,10 @@ static int labels_list_parse(config_setting_t *root, int **out, *out = list; return 0; + +err_nomem: + free(list); + return -ENOMEM; } static int screen_entry_parse(config_setting_t *root, void *data) @@ -497,6 +507,9 @@ static int ruler_entry_parse(config_setting_t *root, void *data) for (i = 0; i < num; ++i) { node = config_setting_get_elem(root, i); + if (!node) + return -ENOMEM; + config_setting_lookup_int(node, "pos_x", &ruler[i].pos_x); config_setting_lookup_int(node, "pos_y", &ruler[i].pos_y); config_setting_lookup_int(node, "height", &ruler[i].height); |