aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/song_save.c3
-rw-r--r--src/tag.c2
2 files changed, 4 insertions, 1 deletions
diff --git a/src/song_save.c b/src/song_save.c
index 1d2724e83..8f4e1614d 100644
--- a/src/song_save.c
+++ b/src/song_save.c
@@ -80,7 +80,8 @@ insertSongIntoList(struct songvec *sv, struct song *newsong)
tag_end_add(newsong->tag);
} else { /* prevent dupes, just update the existing song info */
if (existing->mtime != newsong->mtime) {
- tag_free(existing->tag);
+ if (existing->tag != NULL)
+ tag_free(existing->tag);
if (newsong->tag)
tag_end_add(newsong->tag);
existing->tag = newsong->tag;
diff --git a/src/tag.c b/src/tag.c
index a75ef6ba5..34205d20d 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -163,6 +163,8 @@ void tag_free(struct tag *tag)
{
int i;
+ assert(tag != NULL);
+
g_mutex_lock(tag_pool_lock);
for (i = tag->num_items; --i >= 0; )
tag_pool_put_item(tag->items[i]);