diff options
author | Minje Ahn <minje.ahn@samsung.com> | 2019-08-20 18:03:03 +0900 |
---|---|---|
committer | Minje Ahn <minje.ahn@samsung.com> | 2019-08-20 18:06:25 +0900 |
commit | 3753ebb53e0025a25a897034b37fe3ca68e7047c (patch) | |
tree | 16a1055d76c449bffd051e27a7736e1827d3bfe3 | |
parent | 32200af563b4c2a5ec64ee9c85c0923d1392c4f2 (diff) | |
download | metadata-extractor-3753ebb53e0025a25a897034b37fe3ca68e7047c.tar.gz metadata-extractor-3753ebb53e0025a25a897034b37fe3ca68e7047c.tar.bz2 metadata-extractor-3753ebb53e0025a25a897034b37fe3ca68e7047c.zip |
Fix crash issue (audio/video codec)submit/tizen/20190820.091229accepted/tizen/unified/20190820.233458
The audio/video codec value of some media returns -1
Change-Id: I6d14089ee8f77f52f71a533030c857bfb4809303
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
-rwxr-xr-x | packaging/capi-media-metadata-extractor.spec | 2 | ||||
-rw-r--r-- | 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; |