From: Minje Ahn Date: Thu, 3 Aug 2017 02:08:02 +0000 (+0900) Subject: Fix svace issue X-Git-Tag: submit/tizen/20170810.021546~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b9d7dc431824f0aaab888dea829c07c9901f6b2c;p=platform%2Fcore%2Fmultimedia%2Fdcm-service.git Fix svace issue Change-Id: I00993efbc7240392686818ff391a4488c913563f Signed-off-by: Minje Ahn --- diff --git a/libdcm-util/dcm_image_codec.c b/libdcm-util/dcm_image_codec.c index 852e521..6ceaea1 100755 --- a/libdcm-util/dcm_image_codec.c +++ b/libdcm-util/dcm_image_codec.c @@ -220,6 +220,7 @@ int dcm_decode_image(const char *file_path, const dcm_image_format_e format, ret = image_util_decode_set_input_path(handle, file_path); if (ret != IMAGE_UTIL_ERROR_NONE) { dcm_error("Error image_util_decode_set_input_path ret : %d", ret); + image_util_decode_destroy(handle); return MS_MEDIA_ERR_INTERNAL; } @@ -234,11 +235,13 @@ int dcm_decode_image(const char *file_path, const dcm_image_format_e format, colorspace = IMAGE_UTIL_COLORSPACE_RGBA8888; mm_format = MM_UTIL_IMG_FMT_RGBA8888; } else { + image_util_decode_destroy(handle); return MS_MEDIA_ERR_UNSUPPORTED_CONTENT; } ret = image_util_decode_set_colorspace(handle, colorspace); if (ret != IMAGE_UTIL_ERROR_NONE) { dcm_error("Error image_util_decode_set_colorspace ret : %d", ret); + image_util_decode_destroy(handle); return MS_MEDIA_ERR_INTERNAL; } } @@ -246,12 +249,14 @@ int dcm_decode_image(const char *file_path, const dcm_image_format_e format, ret = image_util_decode_set_output_buffer(handle, &decode_buffer); if (ret != IMAGE_UTIL_ERROR_NONE) { dcm_error("Error image_util_decode_set_output_buffer ret : %d", ret); + image_util_decode_destroy(handle); return MS_MEDIA_ERR_INTERNAL; } ret = image_util_decode_run(handle, (unsigned long *)&decode_width, (unsigned long *)&decode_height, size); if (ret != IMAGE_UTIL_ERROR_NONE) { dcm_error("Error image_util_decode_run ret : %d", ret); + image_util_decode_destroy(handle); return MS_MEDIA_ERR_INTERNAL; } @@ -277,10 +282,21 @@ int dcm_decode_image(const char *file_path, const dcm_image_format_e format, dcm_error("Failed to calculate image buffer size! err: %d", ret); return MS_MEDIA_ERR_INTERNAL; } + *size = buffer_size; resize_buffer = (unsigned char *)malloc(sizeof(unsigned char) * (buffer_size)); - if (resize_buffer != NULL) - mm_util_resize_image(decode_buffer, decode_width, decode_height, mm_format, resize_buffer, buff_width, buff_height); + if (resize_buffer != NULL) { + ret = mm_util_resize_image(decode_buffer, decode_width, decode_height, mm_format, resize_buffer, buff_width, buff_height); + DCM_SAFE_FREE(decode_buffer); + if (ret != MS_MEDIA_ERR_NONE) { + dcm_error("Failed to mm_util_resize_image"); + DCM_SAFE_FREE(resize_buffer); + return MS_MEDIA_ERR_INTERNAL; + } + } else { + dcm_error("Failed to allocation"); + return MS_MEDIA_ERR_OUT_OF_MEMORY; + } } else { resize_buffer = decode_buffer; } @@ -294,6 +310,7 @@ int dcm_decode_image(const char *file_path, const dcm_image_format_e format, *image_buffer = resize_buffer; } else { ret = __dcm_rotate_image(resize_buffer, format, orientation, image_buffer, size, buff_width, buff_height); + DCM_SAFE_FREE(resize_buffer); } if (ret != MS_MEDIA_ERR_NONE) { dcm_error("Failed to rotate image buffer! err: %d", ret);