[FIX] prevent issue 18/42418/1
authorKonstantin Baladurin <k.baladurin@partner.samsung.com>
Mon, 29 Jun 2015 05:36:53 +0000 (08:36 +0300)
committerKonstantin Baladurin <k.baladurin@partner.samsung.com>
Mon, 29 Jun 2015 05:36:53 +0000 (08:36 +0300)
--------------------------------------------------------------------------------------------
| CID    | Type                          | File               | Function                   |
|------------------------------------------------------------------------------------------|
| 451167 | Resource leak                 | da_protocol_inst.c | add_preload_probes         |
--------------------------------------------------------------------------------------------

Change-Id: Ibf76e1eb1959ff633c54b034023a40f3332bd082
Signed-off-by: Konstantin Baladurin <k.baladurin@partner.samsung.com>
daemon/da_inst.c
daemon/da_inst.h
daemon/da_protocol_inst.c

index 83f4562..eccb32c 100644 (file)
@@ -171,6 +171,19 @@ exit_fail:
        return NULL;
 }
 
+void free_lib(struct lib_list_t *lib)
+{
+       free_us_lib_inst(lib->lib);
+       lib->lib = NULL;
+       free_data((struct data_list_t *)lib);
+}
+
+void free_us_lib_inst(struct us_lib_inst_t *us_lib_inst)
+{
+       free(us_lib_inst->bin_path);
+       free(us_lib_inst);
+}
+
 void free_app(struct app_list_t *app)
 {
        free_app_info(app->app);
index ef78809..6e7eda8 100644 (file)
@@ -87,6 +87,7 @@ int probe_list_append(struct data_list_t *to, struct probe_list_t *from);
 int data_list_append(struct data_list_t **to, struct data_list_t *from);
 void free_data_list(struct data_list_t **data);
 void free_app(struct app_list_t *app);
+void free_lib(struct lib_list_t *lib);
 
 struct app_info_t *app_info_get_first(struct app_list_t **app_list);
 struct app_info_t *app_info_get_next(struct app_list_t **app_list);
index 132e0a2..2a49b70 100644 (file)
@@ -608,5 +608,8 @@ free_caller_probe:
 free_call_type_probe:
        free(get_call_type_probe);
 
+       preload_lib->lib->bin_path = NULL;
+       free_lib(preload_lib);
+
        return ret;
 }