Bug 268401 - "TagLib: ByteVectorMirror::toNumber<T>() -- data is empty, returning 0" infinite loop with strange wma file
Summary: "TagLib: ByteVectorMirror::toNumber<T>() -- data is empty, returning 0" infin...
Status: VERIFIED FIXED
Alias: None
Product: taglib
Classification: Unmaintained
Component: general (other bugs)
Version First Reported In: 1.6.3
Platform: Ubuntu Linux
: NOR normal
Target Milestone: ---
Assignee: Scott Wheeler
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-03-13 19:51 UTC by arnaud.bienner
Modified: 2011-12-23 05:07 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
The file causing this bug (2.46 KB, audio/x-ms-wma)
2011-03-13 19:51 UTC, arnaud.bienner
Details

Note You need to log in before you can comment on or make changes to this bug.
Description arnaud.bienner 2011-03-13 19:51:24 UTC
Created attachment 57928 [details]
The file causing this bug

Version:           1.6.3
OS:                Linux

When calling "TagLib::FileRef(filename);", TagLib enters in a infinite loop, printing "TagLib: ByteVectorMirror::toNumber<T>() -- data is empty, returning 0".
The file causing the infinite loop is not valid, and cannot be played (with another music player), but is correctly recognized as "Microsoft ASF" with the 'file' command.
Maybe these traces I have when stopping can help:
#0  0x003b4f1c in TagLib::String::to8Bit(bool) const () from /usr/lib/libtag.so.1
#1  0x003b50f7 in operator<<(std::ostream&, TagLib::String const&) () from /usr/lib/libtag.so.1
#2  0x003bb6f9 in ?? () from /usr/lib/libtag.so.1
#3  0x003b800d in TagLib::ByteVector::toLongLong(bool) const () from /usr/lib/libtag.so.1
#4  0x003d2404 in TagLib::ASF::File::readQWORD() () from /usr/lib/libtag.so.1
#5  0x003d3be8 in TagLib::ASF::File::HeaderExtensionObject::parse(TagLib::ASF::File*, unsigned int) () from /usr/lib/libtag.so.1
#6  0x003d4bde in TagLib::ASF::File::read(bool, TagLib::AudioProperties::ReadStyle) () from /usr/lib/libtag.so.1
#7  0x003d501f in TagLib::ASF::File::File(char const*, bool, TagLib::AudioProperties::ReadStyle) () from /usr/lib/libtag.so.1
#8  0x003da418 in TagLib::FileRef::create(char const*, bool, TagLib::AudioProperties::ReadStyle) () from /usr/lib/libtag.so.1
#9  0x003daab2 in TagLib::FileRef::FileRef(char const*, bool, TagLib::AudioProperties::ReadStyle) () from /usr/lib/libtag.so.1
#10 0x082ab95d in TagLibFileRefFactory::GetFileRef (this=0x8cc9aac, filename=...)

Reproducible: Always
Comment 2 arnaud.bienner 2011-03-14 00:42:22 UTC
Thanks for solving this bug so quickly :)
I try to test the latest version of taglib but, unfortunately, it seems that now, none of my wma files are recognized :(
Is it only on my side or are you also encountering this problem?
Comment 3 Lukáš Lalinský 2011-03-14 06:05:37 UTC
It seems to be working fine for me. If you can send me such a file, I'll have a look.
Comment 4 David John Mills 2011-12-23 05:07:08 UTC
I'm running openSUSE 12.1 and am experiencing this problem.  I looked on the openSUSE software page and found a newer version of taglib.  I had 1.7-8.1.2-x86_64 installed and have now upgraded to 1.7-41.1-x86_64.  But the problem persists.

Where can I get a version of taglib that does not exhibit the problem?

Or do I have to download the source, apply the patch and recompile my own - which I would really prefer not to do.