summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHwankyu Jhun <h.jhun@samsung.com>2020-01-22 14:24:38 +0900
committerHwankyu Jhun <h.jhun@samsung.com>2020-01-22 14:54:29 +0900
commit43e53decabf7db764f1a513b3c1cfa41e9f62f77 (patch)
tree008a06c2f43d2c8a27cd7600b4996bd8b422e6fb
parent1d8f91812023fcd7e5f0d7f5a5653fee72b47a3c (diff)
downloadwidget-service-43e53decabf7db764f1a513b3c1cfa41e9f62f77.tar.gz
widget-service-43e53decabf7db764f1a513b3c1cfa41e9f62f77.tar.bz2
widget-service-43e53decabf7db764f1a513b3c1cfa41e9f62f77.zip
Fix calling iniparser_getseckeys()
The parameter of iniparser_getseckeys() is changed. Change-Id: Iaa7aa83d42c28403ab8e15cbc69d011352dfd89d Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
-rw-r--r--src/widget_service.c27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/widget_service.c b/src/widget_service.c
index 5c13fca..c0cd85e 100644
--- a/src/widget_service.c
+++ b/src/widget_service.c
@@ -608,7 +608,28 @@ static int _resolution_update_from_file(void)
snprintf(key_format, sizeof(key_format), "%s:%s",
RESOLUTION_SECTION_NAME, RESOLUTION_FORMAT);
key_num = iniparser_getsecnkeys(dic, RESOLUTION_SECTION_NAME);
- key_list = iniparser_getseckeys(dic, RESOLUTION_SECTION_NAME);
+ if (key_num == 0) {
+ _E("key_num is zero");
+ iniparser_freedict(dic);
+ return WIDGET_ERROR_NONE;
+
+ }
+
+ key_list = calloc(key_num, sizeof(char *));
+ if (key_list == NULL) {
+ _E("Out of memory");
+ iniparser_freedict(dic);
+ return WIDGET_ERROR_OUT_OF_MEMORY;
+ }
+
+ if (!iniparser_getseckeys(dic, RESOLUTION_SECTION_NAME,
+ (const char **)key_list)) {
+ _E("Failed to get section keys");
+ free(key_list);
+ iniparser_freedict(dic);
+ return WIDGET_ERROR_IO_ERROR;
+ }
+
for (i = 0; i < key_num; i++) {
type_str = key_list[i];
size_str = iniparser_getstring(dic, type_str, NULL);
@@ -628,8 +649,8 @@ static int _resolution_update_from_file(void)
}
_resolution_update_size_list(width_type, height_type, width, height);
}
- if (key_list)
- free(key_list);
+
+ free(key_list);
iniparser_freedict(dic);
return WIDGET_ERROR_NONE;