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
This commit is contained in:
parent
81e7833711
commit
4abcb08cc9
2
NEWS
2
NEWS
|
@ -1,4 +1,6 @@
|
|||
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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue