From 57da5c0841dd88078b40e53112c6327e0d39315b Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 22 Feb 2016 12:37:33 +0100 Subject: [PATCH] tag/Id3Load: simplify end offset calculation --- src/tag/Id3Load.cxx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/tag/Id3Load.cxx b/src/tag/Id3Load.cxx index 95769084c..bcbac35ba 100644 --- a/src/tag/Id3Load.cxx +++ b/src/tag/Id3Load.cxx @@ -138,11 +138,15 @@ tag_id3_find_from_beginning(FILE *stream) static UniqueId3Tag tag_id3_find_from_end(FILE *stream) { + off_t offset = -(off_t)ID3V1_SIZE; + /* Get an id3v1 tag from the end of file for later use */ - auto v1tag = tag_id3_read(stream, -(off_t)ID3V1_SIZE, SEEK_END); + auto v1tag = tag_id3_read(stream, offset, SEEK_END); + if (!v1tag) + offset = 0; /* Get the id3v2 tag size from the footer (located before v1tag) */ - int tagsize = get_id3v2_footer_size(stream, (v1tag ? -(off_t)ID3V1_SIZE : 0) - ID3_TAG_QUERYSIZE, SEEK_END); + int tagsize = get_id3v2_footer_size(stream, offset - ID3_TAG_QUERYSIZE, SEEK_END); if (tagsize >= 0) return v1tag;