From 3753ebb53e0025a25a897034b37fe3ca68e7047c Mon Sep 17 00:00:00 2001 From: Minje Ahn Date: Tue, 20 Aug 2019 18:03:03 +0900 Subject: Fix crash issue (audio/video codec) The audio/video codec value of some media returns -1 Change-Id: I6d14089ee8f77f52f71a533030c857bfb4809303 Signed-off-by: Minje Ahn --- packaging/capi-media-metadata-extractor.spec | 2 +- src/metadata_extractor.c | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packaging/capi-media-metadata-extractor.spec b/packaging/capi-media-metadata-extractor.spec index 3af438f..218bf54 100755 --- a/packaging/capi-media-metadata-extractor.spec +++ b/packaging/capi-media-metadata-extractor.spec @@ -1,6 +1,6 @@ Name: capi-media-metadata-extractor Summary: A media metadata extractor library in Tizen Native API -Version: 0.1.12 +Version: 0.1.13 Release: 1 Group: Multimedia/API License: Apache-2.0 diff --git a/src/metadata_extractor.c b/src/metadata_extractor.c index 765b7f5..0b38e39 100644 --- a/src/metadata_extractor.c +++ b/src/metadata_extractor.c @@ -425,8 +425,8 @@ static int __metadata_extractor_get_audio_codec(metadata_extractor_s *metadata, ret = __metadata_extractor_get_audio_attr_int(metadata, MM_FILE_CONTENT_AUDIO_CODEC, &audio_codec_idx); metadata_extractor_retvm_if(ret != METADATA_EXTRACTOR_ERROR_NONE, ret, "Fail to get codec idx"); - if (audio_codec_idx < audio_codec_cnt) - *audio_codec = strdup(AudioCodecTypeString[audio_codec_idx]); + if (audio_codec_idx >= 0 && audio_codec_idx < audio_codec_cnt) + *audio_codec = g_strdup(AudioCodecTypeString[audio_codec_idx]); else { metadata_extractor_error("Invalid Audio Codec [%d]", audio_codec_idx); *audio_codec = NULL; @@ -452,8 +452,8 @@ static int __metadata_extractor_get_video_codec(metadata_extractor_s *metadata, ret = __metadata_extractor_get_video_attr_int(metadata, MM_FILE_CONTENT_AUDIO_CODEC, &video_codec_idx); metadata_extractor_retvm_if(ret != METADATA_EXTRACTOR_ERROR_NONE, ret, "Fail to get codec idx"); - if (video_codec_idx < video_codec_cnt) - *video_codec = strdup(VideoCodecTypeString[video_codec_idx]); + if (video_codec_idx >= 0 && video_codec_idx < video_codec_cnt) + *video_codec = g_strdup(VideoCodecTypeString[video_codec_idx]); else { metadata_extractor_error("Invalid Video Codec[%d]", video_codec_idx); *video_codec = NULL; @@ -521,7 +521,7 @@ int metadata_extractor_set_path(metadata_extractor_h metadata, const char *path) _metadata->tag_h = 0; } - _metadata->path = strdup(path); + _metadata->path = g_strdup(path); metadata_extractor_retvm_if(_metadata->path == NULL, METADATA_EXTRACTOR_ERROR_OUT_OF_MEMORY, "Memory allocation failure"); return ret; @@ -585,7 +585,7 @@ int metadata_extractor_get_synclyrics(metadata_extractor_h metadata, int index, metadata_extractor_retvm_if(ret != FILEINFO_ERROR_NONE, METADATA_EXTRACTOR_ERROR_OPERATION_FAILED, "Internal operation error"); if ((_lyrics != NULL) && (strlen(_lyrics) > 0)) { - *lyrics = strdup(_lyrics); + *lyrics = g_strdup(_lyrics); metadata_extractor_retvm_if(*lyrics == NULL, METADATA_EXTRACTOR_ERROR_OUT_OF_MEMORY, "Memory allocation failure"); } else *lyrics = NULL; @@ -978,7 +978,7 @@ int metadata_extractor_get_metadata(metadata_extractor_h metadata, metadata_extr if (is_string) { if ((s_value != NULL) && (strlen(s_value) > 0)) { - *value = strdup(s_value); + *value = g_strdup(s_value); /*Only use strdup in video_codec and audio_codec */ if (attribute == METADATA_VIDEO_CODEC || attribute == METADATA_AUDIO_CODEC) SAFE_FREE(s_value); @@ -1000,7 +1000,7 @@ int metadata_extractor_get_metadata(metadata_extractor_h metadata, metadata_extr else snprintf(extracted_metadata, sizeof(extracted_metadata), "%d", i_value); - *value = strdup(extracted_metadata); + *value = g_strdup(extracted_metadata); metadata_extractor_retvm_if(*value == NULL, METADATA_EXTRACTOR_ERROR_OUT_OF_MEMORY, "Memory allocation failure"); } @@ -1041,7 +1041,7 @@ int metadata_extractor_get_artwork(metadata_extractor_h metadata, void **artwork } if ((_artwork_mime != NULL) && (strlen(_artwork_mime) > 0)) { - *mime_type = strdup(_artwork_mime); + *mime_type = g_strdup(_artwork_mime); metadata_extractor_retvm_if(*mime_type == NULL, METADATA_EXTRACTOR_ERROR_OUT_OF_MEMORY, "Memory allocation failure"); } else { *mime_type = NULL; -- cgit v1.2.3