Commit 4abcb08c authored by Max Kellermann's avatar Max Kellermann

tag/{aiff,riff}: fix ID3 chunk padding

Apply padding only to the fseek(), not to the chunk size. This fixes bogus "failed to read riff chunk" messages when the last chunk has an odd size. See http://bugs.musicpd.org/view.php?id=4486
parent 81e78337
ver 0.19.13 (not yet released)
* tags
- aiff, riff: fix ID3 chunk padding
ver 0.19.12 (2015/12/15)
* fix assertion failure on malformed UTF-8 tag
......
......@@ -84,14 +84,14 @@ aiff_seek_id3(FILE *file)
underflow when casting to off_t */
return 0;
if (size % 2 != 0)
/* pad byte */
++size;
if (memcmp(chunk.id, "ID3 ", 4) == 0)
/* found it! */
return size;
if (size % 2 != 0)
/* pad byte */
++size;
if (fseek(file, size, SEEK_CUR) != 0)
return 0;
}
......
......@@ -82,15 +82,15 @@ riff_seek_id3(FILE *file)
underflow when casting to off_t */
return 0;
if (size % 2 != 0)
/* pad byte */
++size;
if (memcmp(chunk.id, "id3 ", 4) == 0 ||
memcmp(chunk.id, "ID3 ", 4) == 0)
/* found it! */
return size;
if (size % 2 != 0)
/* pad byte */
++size;
if (fseek(file, size, SEEK_CUR) != 0)
return 0;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment