mp3_afh: Let free_tag() accept NULL pointer.
authorAndre Noll <maan@tuebingen.mpg.de>
Mon, 7 Mar 2016 15:11:53 +0000 (16:11 +0100)
committerAndre Noll <maan@tuebingen.mpg.de>
Tue, 29 Mar 2016 01:56:49 +0000 (01:56 +0000)
This way it is more similar to free(3) and related functions. It
also allows to replace two checks in mp3_afh.c by a single check
in free_tag().

mp3_afh.c

index 73e744e..5f73785 100644 (file)
--- a/mp3_afh.c
+++ b/mp3_afh.c
@@ -300,6 +300,9 @@ static int replace_tags(struct id3_tag *id3_t, struct taginfo *tags)
 static void free_tag(struct id3_tag *id3_t)
 {
        int i, j;
+
+       if (!id3_t)
+               return;
        for (i = 0; i < id3_t->nframes; i++) {
                struct id3_frame *fr = id3_t->frames[i];
                for (j = 0; j < fr->nfields; j++) {
@@ -372,10 +375,8 @@ static int mp3_rewrite_tags(const char *map, size_t mapsize,
                ret = write_all(fd, (char *)v1_buffer, 128);
        }
 out:
-       if (v1_tag)
-               free_tag(v1_tag);
-       if (v2_tag)
-               free_tag(v2_tag);
+       free_tag(v1_tag);
+       free_tag(v2_tag);
        return ret;
 }