This patch adds a check for a null pointer --- a/src/header_tag.cpp +++ b/src/header_tag.cpp @@ -54,7 +54,7 @@ { size_t bytesUsed = ID3_TagHeader::SIZE; - if (_info->is_extended) + if (_info && _info->is_extended) { bytesUsed += _info->extended_bytes; } This patch by Urs Fleisch prevents crashes when reading VBR MP3 file. Index: id3lib3.8.3-3.8.3/src/mp3_parse.cpp =================================================================== --- a/src/mp3_parse.cpp 2009-10-06 23:12:10.381250132 +0200 +++ b/src/mp3_parse.cpp 2009-10-06 23:14:09.545252591 +0200 @@ -465,7 +465,7 @@ // from http://www.xingtech.com/developer/mp3/ const size_t VBR_HEADER_MIN_SIZE = 8; // "xing" + flags are fixed - const size_t VBR_HEADER_MAX_SIZE = 116; // frames, bytes, toc and scale are optional + const size_t VBR_HEADER_MAX_SIZE = 120; // frames, bytes, toc and scale are optional if (mp3size >= vbr_header_offest + VBR_HEADER_MIN_SIZE) {