check NULL before getting metadata 28/233928/9
authorhj kim <backto.kim@samsung.com>
Wed, 20 May 2020 09:45:16 +0000 (18:45 +0900)
committerhj kim <backto.kim@samsung.com>
Tue, 26 May 2020 02:24:06 +0000 (02:24 +0000)
toString() returns "", when String is NULL

Change-Id: I8a8b1da78a4747725bdf6bc8a59e6b2277bd084e

src/metadata_editor.cpp

index 219aaeb..10e8343 100755 (executable)
@@ -117,15 +117,17 @@ static int __ID3_getTwixFrameByName(metadata_editor_s *_metadata, ID3v1::Tag *ta
 
        metadata_editor_info("Reading data from ID3v1 tag");
 
-       if (!strcmp(frameID, "TPE1"))   /* artist */
+       //check isNull(). toCString() returns "", when String is NULL.
+       //for "genre", taglib returns "", if genre is out or range.
+       if (!strcmp(frameID, "TPE1") && !(tag1->artist().isNull()))     /* artist */
                *value = g_strdup(tag1->artist().toCString(true));
-       else if (!strcmp(frameID, "TALB"))      /* album */
+       else if (!strcmp(frameID, "TALB") && !(tag1->album().isNull())) /* album */
                *value = g_strdup(tag1->album().toCString(true));
-       else if (!strcmp(frameID, "COMM"))      /* comment */
+       else if (!strcmp(frameID, "COMM") && !(tag1->comment().isNull()))       /* comment */
                *value = g_strdup(tag1->comment().toCString(true));
-       else if (!strcmp(frameID, "TCON"))      /* genre */
+       else if (!strcmp(frameID, "TCON") && !(tag1->genre().isNull()) && !(tag1->genre().isEmpty()))   /* genre */
                *value = g_strdup(tag1->genre().toCString(true));
-       else if (!strcmp(frameID, "TIT2"))      /* title */
+       else if (!strcmp(frameID, "TIT2") && !(tag1->title().isNull())) /* title */
                *value = g_strdup(tag1->title().toCString(true));
        else if (!strcmp(frameID, "TRCK"))      /* track */
                *value = g_strdup_printf("%u", tag1->track());
@@ -278,7 +280,8 @@ static int __ID3_getLyricsFrame(metadata_editor_s *_metadata, ID3v2::Tag *tag2,
        auto it = lst.begin();
        auto frame = static_cast<ID3v2::UnsynchronizedLyricsFrame*>(*it);
 
-       *value = g_strdup(frame->text().toCString(true));
+       if (!(frame->text().isNull()))
+               *value = g_strdup(frame->text().toCString(true));
 
        return METADATA_EDITOR_ERROR_NONE;
 }