[Fix] Memory leak while fetching data from config file 70/155770/1
authorNishant Chaprana <n.chaprana@samsung.com>
Mon, 16 Oct 2017 06:14:42 +0000 (11:44 +0530)
committerNishant Chaprana <n.chaprana@samsung.com>
Mon, 16 Oct 2017 06:14:42 +0000 (11:44 +0530)
Change-Id: I2126b99837fb53c9a504ba47580c2fcfba5b5fd7
Signed-off-by: Nishant Chaprana <n.chaprana@samsung.com>
packaging/stc-manager.spec
src/stc-manager-util.c

index cf69262..9500d61 100644 (file)
@@ -1,6 +1,6 @@
 Name:       stc-manager
 Summary:    STC(Smart Traffic Control) manager
-Version:    0.0.36
+Version:    0.0.37
 Release:    0
 Group:      Network & Connectivity/Other
 License:    Apache-2.0
index 1c97e81..17f9d83 100755 (executable)
@@ -74,6 +74,7 @@ gboolean stc_util_get_config_bool(char *key)
 {
        char path[MAX_PATH_LENGTH];
        GKeyFile *keyfile;
+       gboolean value;
 
        snprintf(path, sizeof(path), "%s/%s", INFO_STORAGE_DIR, INFO_CONFIG);
 
@@ -81,13 +82,17 @@ gboolean stc_util_get_config_bool(char *key)
        if (!keyfile)
                keyfile = g_key_file_new();
 
-       return g_key_file_get_boolean(keyfile, path, key, NULL);
+       value = g_key_file_get_boolean(keyfile, path, key, NULL);
+       g_key_file_free(keyfile);
+
+       return value;
 }
 
 gchar * stc_util_get_config_str(char *key)
 {
        char path[MAX_PATH_LENGTH];
        GKeyFile *keyfile;
+       gchar *value;
 
        snprintf(path, sizeof(path), "%s/%s", INFO_STORAGE_DIR, INFO_CONFIG);
 
@@ -95,13 +100,17 @@ gchar * stc_util_get_config_str(char *key)
        if (!keyfile)
                keyfile = g_key_file_new();
 
-       return g_key_file_get_string(keyfile, path, key, NULL);
+       value = g_key_file_get_string(keyfile, path, key, NULL);
+       g_key_file_free(keyfile);
+
+       return value;
 }
 
 int stc_util_get_config_int(char *key)
 {
        char path[MAX_PATH_LENGTH];
        GKeyFile *keyfile;
+       gint value;
 
        snprintf(path, sizeof(path), "%s/%s", INFO_STORAGE_DIR, INFO_CONFIG);
 
@@ -109,7 +118,11 @@ int stc_util_get_config_int(char *key)
        if (!keyfile)
                keyfile = g_key_file_new();
 
-       return g_key_file_get_integer(keyfile, path, key, NULL);
+
+       value = g_key_file_get_integer(keyfile, path, key, NULL);
+       g_key_file_free(keyfile);
+
+       return value;
 }
 
 API void stc_util_set_debuglog(int debuglog)