diff options
author | Hwankyu Jhun <h.jhun@samsung.com> | 2020-01-22 14:24:38 +0900 |
---|---|---|
committer | Hwankyu Jhun <h.jhun@samsung.com> | 2020-01-22 14:54:29 +0900 |
commit | 43e53decabf7db764f1a513b3c1cfa41e9f62f77 (patch) | |
tree | 008a06c2f43d2c8a27cd7600b4996bd8b422e6fb | |
parent | 1d8f91812023fcd7e5f0d7f5a5653fee72b47a3c (diff) | |
download | widget-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.c | 27 |
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; |