diff options
author | Minje Ahn <minje.ahn@samsung.com> | 2015-07-14 20:07:19 +0900 |
---|---|---|
committer | Minje Ahn <minje.ahn@samsung.com> | 2015-07-16 19:55:16 +0900 |
commit | 64959fbc53fd5386a684928617353a9be4890439 (patch) | |
tree | 148dade3ac392c7171885063f62b7f230391c8af | |
parent | 884d011d82489df940044e09b158bb787d3b7037 (diff) | |
download | libmedia-thumbnail-64959fbc53fd5386a684928617353a9be4890439.tar.gz libmedia-thumbnail-64959fbc53fd5386a684928617353a9be4890439.tar.bz2 libmedia-thumbnail-64959fbc53fd5386a684928617353a9be4890439.zip |
Fix memory leak(additional)
Change-Id: I0a2a8cb5ca27bf049498722ca677f3220e1eb7f0
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
-rwxr-xr-x | src/ipc/media-thumb-ipc.c | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/src/ipc/media-thumb-ipc.c b/src/ipc/media-thumb-ipc.c index 53f3ba2..64c4b46 100755 --- a/src/ipc/media-thumb-ipc.c +++ b/src/ipc/media-thumb-ipc.c @@ -659,8 +659,12 @@ int _media_thumb_process(thumbMsg *req_msg, thumbMsg *res_msg, uid_t uid) if (strlen(thumb_path) == 0) { err = _media_thumb_get_hash_name(origin_path, thumb_path, max_length,uid); if (err != MS_MEDIA_ERR_NONE) { - thumb_err("_media_thumb_get_hash_name failed - %d\n", err); - strncpy(thumb_path, _media_thumb_get_default_path(uid), max_length); + char *default_path = _media_thumb_get_default_path(uid); + if(default_path) { + thumb_err("_media_thumb_get_hash_name failed - %d\n", err); + strncpy(thumb_path, default_path, max_length); + free(default_path); + } _media_thumb_db_disconnect(); return err; } @@ -675,8 +679,12 @@ int _media_thumb_process(thumbMsg *req_msg, thumbMsg *res_msg, uid_t uid) } else if (msg_type == THUMB_REQUEST_ALL_MEDIA) { err = _media_thumb_get_hash_name(origin_path, thumb_path, max_length,uid); if (err < 0) { - thumb_err("_media_thumb_get_hash_name failed - %d\n", err); - strncpy(thumb_path, _media_thumb_get_default_path(uid), max_length); + char *default_path = _media_thumb_get_default_path(uid); + if(default_path) { + thumb_err("_media_thumb_get_hash_name failed - %d\n", err); + strncpy(thumb_path, default_path, max_length); + free(default_path); + } _media_thumb_db_disconnect(); return err; } @@ -691,11 +699,15 @@ int _media_thumb_process(thumbMsg *req_msg, thumbMsg *res_msg, uid_t uid) err = _thumbnail_get_data(origin_path, thumb_type, thumb_format, &gdkdata, &thumb_size, &thumb_w, &thumb_h, &origin_w, &origin_h, &alpha, uid); if (err != MS_MEDIA_ERR_NONE) { + char *default_path = _media_thumb_get_default_path(uid); thumb_err("_thumbnail_get_data failed - %d\n", err); if ( gdkdata != NULL ){ g_object_unref(gdkdata); } - strncpy(thumb_path, _media_thumb_get_default_path(uid), max_length); + if(default_path) { + strncpy(thumb_path, default_path, max_length); + free(default_path); + } _media_thumb_db_disconnect(); return err; } @@ -726,14 +738,18 @@ int _media_thumb_process(thumbMsg *req_msg, thumbMsg *res_msg, uid_t uid) err = _media_thumb_save_to_file_with_gdk(gdkdata, thumb_w, thumb_h, alpha, thumb_path); if (err < 0) { + char *default_path = _media_thumb_get_default_path(uid); thumb_err("save_to_file_with_gdk failed - %d\n", err); if ( gdkdata != NULL ){ g_object_unref(gdkdata); } - if (msg_type == THUMB_REQUEST_DB_INSERT || msg_type == THUMB_REQUEST_ALL_MEDIA) - strncpy(thumb_path, _media_thumb_get_default_path(uid), max_length); - + if (msg_type == THUMB_REQUEST_DB_INSERT || msg_type == THUMB_REQUEST_ALL_MEDIA) { + if(default_path) { + strncpy(thumb_path, default_path, max_length); + free(default_path); + } + } _media_thumb_db_disconnect(); return err; } else { |