Fix coverity issue 47/222847/1 submit/tizen/20200122.012604
authorjiyong.min <jiyong.min@samsung.com>
Mon, 20 Jan 2020 23:58:07 +0000 (08:58 +0900)
committerjiyong.min <jiyong.min@samsung.com>
Mon, 20 Jan 2020 23:58:07 +0000 (08:58 +0900)
  - 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

include/mm_file.h
mm_file.c
packaging/libmm-fileinfo.spec
tests/mm_file_test.c
unittest/libmm_fileinfo_unittest.cpp

index 3be22af..270f576 100755 (executable)
@@ -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.<BR>
   *                    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.<BR>
@@ -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);
index 13212e6..0340a0b 100644 (file)
--- 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);
                }
        }
 
index 5a3b9c1..11d9c6c 100644 (file)
@@ -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
index 5f1b722..f3bc491 100755 (executable)
@@ -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);
index 7fd5319..4681ab1 100755 (executable)
@@ -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");