From: jiyong.min Date: Mon, 20 Jan 2020 23:58:07 +0000 (+0900) Subject: Fix coverity issue X-Git-Tag: submit/tizen/20200122.012604^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=be9b346c4f7aa631cee99306fff1a53c88ddb8d9;p=platform%2Fcore%2Fmultimedia%2Flibmm-fileinfo.git Fix coverity issue - Resource leak Variable 'err_attr_name' should be freed by caller, but it is not used and freed. So, remove unused(useless) 'err_attr_name'. Change-Id: I201c216828a05a0e620799145960de925c9ce524 --- diff --git a/include/mm_file.h b/include/mm_file.h index 3be22af..270f576 100755 --- a/include/mm_file.h +++ b/include/mm_file.h @@ -207,7 +207,6 @@ mm_file_create_tag_attrs(&tag_attrs, filename); // get attributes of tag ret = mm_file_get_attrs(tag_attrs, - &err_attr_name, MM_FILE_TAG_ARTIST, &ctag.artist.value.s_val, &ctag.artist.len, MM_FILE_TAG_ALBUM, &ctag.album.value.s_val, &ctag.album.len, MM_FILE_TAG_TITLE, &ctag.title.value.s_val, &ctag.title.len, @@ -251,7 +250,6 @@ mm_file_create_tag_attrs(&tag_attrs, filename); // get attributes of tag ret = mm_file_get_attrs(tag_attrs, - &err_attr_name, MM_FILE_TAG_ARTIST, &ctag.artist.value.s_val, &ctag.artist.len, MM_FILE_TAG_ALBUM, &ctag.album.value.s_val, &ctag.album.len, MM_FILE_TAG_TITLE, &ctag.title.value.s_val, &ctag.title.len, @@ -300,7 +298,7 @@ printf ("Testing mm_file_get_stream_info()....audio=%d, video=%d\n", audio_track mm_file_create_content_attrs(&content_attrs, filename); // get duration information -ret = mm_file_get_attrs(content_attrs, &err_attr_name, MM_FILE_CONTENT_DURATION, &ccontent.duration, NULL); +ret = mm_file_get_attrs(content_attrs, MM_FILE_CONTENT_DURATION, &ccontent.duration, NULL); printf("duration: %d\n", ccontent.duration); if (ret != MM_ERROR_NONE) @@ -331,7 +329,6 @@ if (video_track_num) void *thumbnail = NULL; mm_file_get_attrs(content_attrs, - NULL, MM_FILE_CONTENT_VIDEO_CODEC, &ccontent.video_codec, MM_FILE_CONTENT_VIDEO_BITRATE, &ccontent.video_bitrate, MM_FILE_CONTENT_VIDEO_FPS, &ccontent.video_fps, @@ -375,7 +372,7 @@ printf ("Testing mm_file_get_stream_info()....audio=%d, video=%d\n", audio_track mm_file_create_content_attrs(&content_attrs, filename); // get duration information -ret = mm_file_get_attrs(content_attrs, &err_attr_name, MM_FILE_CONTENT_DURATION, &ccontent.duration, NULL); +ret = mm_file_get_attrs(content_attrs, MM_FILE_CONTENT_DURATION, &ccontent.duration, NULL); printf("duration: %d\n", ccontent.duration); if (ret != MM_ERROR_NONE) @@ -388,7 +385,6 @@ if (ret != MM_ERROR_NONE) if (audio_track_num) { mm_file_get_attrs(content_attrs, - NULL, MM_FILE_CONTENT_AUDIO_CODEC, &ccontent.audio_codec, MM_FILE_CONTENT_AUDIO_SAMPLERATE, &ccontent.audio_samplerate, MM_FILE_CONTENT_AUDIO_BITRATE, &ccontent.audio_bitrate, @@ -406,7 +402,6 @@ if (video_track_num) void *thumbnail = NULL; mm_file_get_attrs(content_attrs, - NULL, MM_FILE_CONTENT_VIDEO_CODEC, &ccontent.video_codec, MM_FILE_CONTENT_VIDEO_BITRATE, &ccontent.video_bitrate, MM_FILE_CONTENT_VIDEO_FPS, &ccontent.video_fps, @@ -431,12 +426,11 @@ int mm_file_destroy_content_attrs(MMHandleType content_attrs); * Handle should be destroyed after use. * * @param attrs [in] tag or content attribute handle. - * @param err_attr_name [out] Name of attribute which is failed to get * @param first_attribute_name [in] Name of the first attribute to get * @param ... [in] Value for the first attribute, followed optionally by more name/value pairs, terminated by NULL. * But, in the case of data or string type, it should be name/value/size. * - * @return This function returns MM_ERROR_NONE on success, or negative value with error code. + * @return This function returns MM_ERROR_NONE on success, or negative value. * * @remark This function must be terminated by NULL argument.
* And, if this function is failed, err_attr_name param must be free. @@ -455,7 +449,7 @@ printf ("Testing mm_file_get_stream_info()....audio=%d, video=%d\n", audio_track mm_file_create_content_attrs(&content_attrs, filename); // get duration information -ret = mm_file_get_attrs(content_attrs, &err_attr_name, MM_FILE_CONTENT_DURATION, &ccontent.duration, NULL); +ret = mm_file_get_attrs(content_attrs, MM_FILE_CONTENT_DURATION, &ccontent.duration, NULL); printf("duration: %d\n", ccontent.duration); if (ret != MM_ERROR_NONE) @@ -468,7 +462,6 @@ if (ret != MM_ERROR_NONE) if (audio_track_num) { mm_file_get_attrs(content_attrs, - NULL, MM_FILE_CONTENT_AUDIO_CODEC, &ccontent.audio_codec, MM_FILE_CONTENT_AUDIO_SAMPLERATE, &ccontent.audio_samplerate, MM_FILE_CONTENT_AUDIO_BITRATE, &ccontent.audio_bitrate, @@ -486,7 +479,6 @@ if (video_track_num) void *thumbnail = NULL; mm_file_get_attrs(content_attrs, - NULL, MM_FILE_CONTENT_VIDEO_CODEC, &ccontent.video_codec, MM_FILE_CONTENT_VIDEO_BITRATE, &ccontent.video_bitrate, MM_FILE_CONTENT_VIDEO_FPS, &ccontent.video_fps, @@ -504,7 +496,7 @@ mm_file_destroy_content_attrs(content_attrs); * @endcode */ -int mm_file_get_attrs(MMHandleType attrs, char **err_attr_name, const char *first_attribute_name, ...)G_GNUC_NULL_TERMINATED; +int mm_file_get_attrs(MMHandleType attrs, const char *first_attribute_name, ...)G_GNUC_NULL_TERMINATED; /** * This function is to get the tag attributes from media data on memory while mm_file_create_tag_attrs() extracts from file.
@@ -530,7 +522,6 @@ mm_file_create_tag_attrs_from_memory(&tag_attrs, data, size, MM_FILE_FORMAT_MP3) // get audio artist & album tag mm_file_get_attrs(tag_attrs, - NULL, MM_FILE_TAG_ARTIST, &ctag.artist.value.s_val, &ctag.artist.len, MM_FILE_TAG_ALBUM, &ctag.album.value.s_val, &ctag.album.len, MM_FILE_TAG_ALBUM_ARTIST, &ctag.album_artist.value.s_val, &ctag.album_artist.len, @@ -567,7 +558,6 @@ mm_file_create_content_attrs_from_memory(&content_attrs, data, size, MM_FILE_FOR // get audio bit rate and sample rate mm_file_get_attrs(content_attrs, - NULL, MM_FILE_CONTENT_AUDIO_SAMPLERATE, &ccontent.audio_samplerate, MM_FILE_CONTENT_AUDIO_BITRATE, &ccontent.audio_bitrate, NULL); @@ -628,7 +618,6 @@ mm_file_create_content_attrs_simple(&content_attrs, filename); // get width, height information mm_file_get_attrs(content_attrs, - NULL, MM_FILE_CONTENT_VIDEO_WIDTH, &ccontent.video_w, MM_FILE_CONTENT_VIDEO_HEIGHT, &ccontent.video_h, NULL); diff --git a/mm_file.c b/mm_file.c index 13212e6..0340a0b 100644 --- a/mm_file.c +++ b/mm_file.c @@ -684,10 +684,11 @@ exception: /** * global functions. */ -int mm_file_get_attrs(MMHandleType attrs, char **err_attr_name, const char *first_attribute_name, ...) +int mm_file_get_attrs(MMHandleType attrs, const char *first_attribute_name, ...) { int ret = FILEINFO_ERROR_NONE; va_list var_args; + char *err_attr_name = NULL; if (!attrs) { debug_error(DEBUG, "Invalid arguments [attrs 0]\n"); @@ -701,12 +702,13 @@ int mm_file_get_attrs(MMHandleType attrs, char **err_attr_name, const char *firs /* get requested attributes */ va_start(var_args, first_attribute_name); - ret = mm_attrs_get_valist(attrs, err_attr_name, first_attribute_name, var_args); + ret = mm_attrs_get_valist(attrs, &err_attr_name, first_attribute_name, var_args); va_end(var_args); if (ret != FILEINFO_ERROR_NONE) { if (err_attr_name) { - debug_error(DEBUG, "failed to get %s\n", *err_attr_name); + debug_error(DEBUG, "failed to get %s\n", err_attr_name); + free(err_attr_name); } } diff --git a/packaging/libmm-fileinfo.spec b/packaging/libmm-fileinfo.spec index 5a3b9c1..11d9c6c 100644 --- a/packaging/libmm-fileinfo.spec +++ b/packaging/libmm-fileinfo.spec @@ -1,6 +1,6 @@ Name: libmm-fileinfo Summary: Media Fileinfo -Version: 0.6.83 +Version: 0.6.84 Release: 1 Group: System/Libraries License: Apache-2.0 diff --git a/tests/mm_file_test.c b/tests/mm_file_test.c index 5f1b722..f3bc491 100755 --- a/tests/mm_file_test.c +++ b/tests/mm_file_test.c @@ -239,7 +239,6 @@ static int mmfile_get_file_infomation(void *data, void *user_data, bool file_tes { MMHandleType content_attrs = 0; MMHandleType tag_attrs = 0; - char *err_attr_name = NULL; int audio_track_num = 0; int video_track_num = 0; int ret = 0; @@ -275,18 +274,14 @@ static int mmfile_get_file_infomation(void *data, void *user_data, bool file_tes ContentContext_t ccontent; memset(&ccontent, 0, sizeof(ContentContext_t)); - ret = mm_file_get_attrs(content_attrs, &err_attr_name, MM_FILE_CONTENT_DURATION, &ccontent.duration, NULL); + ret = mm_file_get_attrs(content_attrs, MM_FILE_CONTENT_DURATION, &ccontent.duration, NULL); printf("# duration: %d\n", ccontent.duration); - if (ret != FILEINFO_ERROR_NONE && err_attr_name) { - printf("failed to get %s\n", err_attr_name); - free(err_attr_name); - err_attr_name = NULL; - } + if (ret != FILEINFO_ERROR_NONE) + printf("failed to get attrs\n"); if (audio_track_num) { ret = mm_file_get_attrs(content_attrs, - NULL, MM_FILE_CONTENT_AUDIO_CODEC, &ccontent.audio_codec, MM_FILE_CONTENT_AUDIO_SAMPLERATE, &ccontent.audio_samplerate, MM_FILE_CONTENT_AUDIO_BITRATE, &ccontent.audio_bitrate, @@ -313,7 +308,6 @@ static int mmfile_get_file_infomation(void *data, void *user_data, bool file_tes if (video_track_num) { ret = mm_file_get_attrs(content_attrs, - NULL, MM_FILE_CONTENT_VIDEO_CODEC, &ccontent.video_codec, MM_FILE_CONTENT_VIDEO_BITRATE, &ccontent.video_bitrate, MM_FILE_CONTENT_VIDEO_FPS, &ccontent.video_fps, @@ -359,7 +353,6 @@ static int mmfile_get_file_infomation(void *data, void *user_data, bool file_tes memset(&ctag, 0, sizeof(TagContext_t)); /* get attributes of tag */ ret = mm_file_get_attrs(tag_attrs, - &err_attr_name, MM_FILE_TAG_ARTIST, &ctag.artist.value.s_val, &ctag.artist.len, MM_FILE_TAG_ALBUM, &ctag.album.value.s_val, &ctag.album.len, MM_FILE_TAG_ALBUM_ARTIST, &ctag.album_artist.value.s_val, &ctag.album_artist.len, @@ -418,10 +411,8 @@ static int mmfile_get_file_infomation(void *data, void *user_data, bool file_tes MM_FILE_TAG_SPHERICAL_V2_EQUI_BOUNDS_RIGHT, &ctag.equi_projection_bounds_right_v2.value.i_val, MM_FILE_TAG_SMTA, &ctag.smta.value.i_val, NULL); - if (ret != FILEINFO_ERROR_NONE && err_attr_name) { - printf("failed to get %s attrs\n", err_attr_name); - free(err_attr_name); - err_attr_name = NULL; + if (ret != FILEINFO_ERROR_NONE) { + printf("failed to get attrs\n"); if (msg_tmp_fp) { /* opened by MM_TIME_CHECK_START */ fclose(msg_tmp_fp); diff --git a/unittest/libmm_fileinfo_unittest.cpp b/unittest/libmm_fileinfo_unittest.cpp index 7fd5319..4681ab1 100755 --- a/unittest/libmm_fileinfo_unittest.cpp +++ b/unittest/libmm_fileinfo_unittest.cpp @@ -51,29 +51,28 @@ TEST(libmm_fileinfo_Test, mm_file_get_content_attrs_p) { int ret = FILEINFO_ERROR_NONE; MMHandleType content_attrs; - char *err_attr_name = NULL; int p = 0; ret = mm_file_create_content_attrs(&content_attrs, GTEST_VIDEO_FILE_PATH); EXPECT_EQ(ret, FILEINFO_ERROR_NONE); - ret = mm_file_get_attrs(content_attrs, &err_attr_name, MM_FILE_CONTENT_DURATION, &p, NULL); + ret = mm_file_get_attrs(content_attrs, MM_FILE_CONTENT_DURATION, &p, NULL); EXPECT_EQ(ret, FILEINFO_ERROR_NONE); EXPECT_EQ(p, 11883); - ret = mm_file_get_attrs(content_attrs, &err_attr_name, MM_FILE_CONTENT_VIDEO_BITRATE, &p, NULL); + ret = mm_file_get_attrs(content_attrs, MM_FILE_CONTENT_VIDEO_BITRATE, &p, NULL); EXPECT_EQ(ret, FILEINFO_ERROR_NONE); EXPECT_EQ(p, 909428); - ret = mm_file_get_attrs(content_attrs, &err_attr_name, MM_FILE_CONTENT_VIDEO_FPS, &p, NULL); + ret = mm_file_get_attrs(content_attrs, MM_FILE_CONTENT_VIDEO_FPS, &p, NULL); EXPECT_EQ(ret, FILEINFO_ERROR_NONE); EXPECT_EQ(p, 30); - ret = mm_file_get_attrs(content_attrs, &err_attr_name, MM_FILE_CONTENT_VIDEO_WIDTH, &p, NULL); + ret = mm_file_get_attrs(content_attrs, MM_FILE_CONTENT_VIDEO_WIDTH, &p, NULL); EXPECT_EQ(ret, FILEINFO_ERROR_NONE); EXPECT_EQ(p, 320); - ret = mm_file_get_attrs(content_attrs, &err_attr_name, MM_FILE_CONTENT_VIDEO_HEIGHT, &p, NULL); + ret = mm_file_get_attrs(content_attrs, MM_FILE_CONTENT_VIDEO_HEIGHT, &p, NULL); EXPECT_EQ(ret, FILEINFO_ERROR_NONE); EXPECT_EQ(p, 240); @@ -97,26 +96,25 @@ TEST(libmm_fileinfo_Test, mm_file_get_tag_attrs_p) { int ret = FILEINFO_ERROR_NONE; MMHandleType tag_attrs; - char *err_attr_name = NULL; char *p = NULL; unsigned int size = 0; ret = mm_file_create_tag_attrs(&tag_attrs, GTEST_VIDEO_FILE_PATH); EXPECT_EQ(ret, FILEINFO_ERROR_NONE); - ret = mm_file_get_attrs(tag_attrs, &err_attr_name, MM_FILE_TAG_ARTIST, &p, &size, NULL); + ret = mm_file_get_attrs(tag_attrs, MM_FILE_TAG_ARTIST, &p, &size, NULL); EXPECT_EQ(ret, FILEINFO_ERROR_NONE); EXPECT_STREQ(p, "Test"); - ret = mm_file_get_attrs(tag_attrs, &err_attr_name, MM_FILE_TAG_TITLE, &p, &size, NULL); + ret = mm_file_get_attrs(tag_attrs, MM_FILE_TAG_TITLE, &p, &size, NULL); EXPECT_EQ(ret, FILEINFO_ERROR_NONE); EXPECT_STREQ(p, "Test"); - ret = mm_file_get_attrs(tag_attrs, &err_attr_name, MM_FILE_TAG_ALBUM, &p, &size, NULL); + ret = mm_file_get_attrs(tag_attrs, MM_FILE_TAG_ALBUM, &p, &size, NULL); EXPECT_EQ(ret, FILEINFO_ERROR_NONE); EXPECT_STREQ(p, "Test"); - ret = mm_file_get_attrs(tag_attrs, &err_attr_name, MM_FILE_TAG_GENRE, &p, &size, NULL); + ret = mm_file_get_attrs(tag_attrs, MM_FILE_TAG_GENRE, &p, &size, NULL); EXPECT_EQ(ret, FILEINFO_ERROR_NONE); EXPECT_STREQ(p, "Test");