Remove memory leakage to avoid dangling 32/258632/1
authorSuyeon Hwang <stom.hwang@samsung.com>
Fri, 21 May 2021 09:05:27 +0000 (18:05 +0900)
committerSuyeon Hwang <stom.hwang@samsung.com>
Fri, 21 May 2021 09:05:27 +0000 (18:05 +0900)
Change-Id: I9139a059bb642c6748d50dcac8843d0a422ce5b1
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
engine-parser/src/stt-engine-parser.c

index 1333fa5..260f59f 100644 (file)
@@ -548,6 +548,10 @@ int PKGMGR_MDPARSER_PLUGIN_INSTALL(const char *pkgid, const char *appid, GList *
                        if (NULL != home_dir) {
                                LOGD("[DEBUG] uid(%d), gid(%d), user_type(%s), home_dir(%s)", uid, gid, user_type, home_dir);
 
+                               FREE(g_dir_config_base)
+                               FREE(g_dir_home)
+                               FREE(g_dir_engine_base)
+                               FREE(g_dir_engine_info)
                                g_dir_config_base = (char*)calloc(strlen(home_dir) + 14, sizeof(char));
                                g_dir_home = (char*)calloc(strlen(home_dir) + 18, sizeof(char));
                                g_dir_engine_base = (char*)calloc(strlen(home_dir) + 22, sizeof(char));
@@ -577,11 +581,6 @@ int PKGMGR_MDPARSER_PLUGIN_INSTALL(const char *pkgid, const char *appid, GList *
                                        LOGE("[ERROR] Fail to make engine info file");
                                }
 
-                               FREE(g_dir_config_base)
-                               FREE(g_dir_home)
-                               FREE(g_dir_engine_base)
-                               FREE(g_dir_engine_info)
-
                                G_FREE(home_dir)
                        }
 
@@ -789,6 +788,7 @@ int PKGMGR_MDPARSER_PLUGIN_UNINSTALL(const char *pkgid, const char *appid, GList
                        }
 
                        if (NULL != home_dir) {
+                               FREE(g_dir_engine_info)
                                g_dir_engine_info = (char*)calloc(strlen(home_dir) + 34, sizeof(char));
                                if (NULL == g_dir_engine_info) {
                                        gum_user_service_list_free(users);
@@ -813,7 +813,6 @@ int PKGMGR_MDPARSER_PLUGIN_UNINSTALL(const char *pkgid, const char *appid, GList
                                }
 
                                G_FREE(home_dir)
-                               G_FREE(g_dir_engine_info)
                        }
                        G_FREE(user_type)