Bug 299301 - soundKonverter crashes in TagLib::String::toCString
Summary: soundKonverter crashes in TagLib::String::toCString
Status: RESOLVED UPSTREAM
Alias: None
Product: taglib
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: unspecified
Platform: Gentoo Packages Linux
: NOR normal
Target Milestone: ---
Assignee: Scott Wheeler
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-05-03 14:19 UTC by Wonko
Modified: 2012-05-18 20:32 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Test case (50.00 KB, application/octet-stream)
2012-05-03 14:20 UTC, Wonko
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Wonko 2012-05-03 14:19:01 UTC
soundKonverter crashes reproducably right after converting specific files, or when trying to open the otions dialog for such a file shown in the queue. Most files convert fine, but some show the problem, and if so, it happens every time. It seems that if a file triggers the problem, all files of an album show the problem.

Reproducible: Always

Steps to Reproduce:
1. start soundKonverter
2. drag file into window, and click OK button
3. either start transcoding, or try to open the options menu
Actual Results:  
Crash!

Application: soundKonverter (soundkonverter), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[KCrash Handler]
#6  0x00007ff021301731 in TagLib::String::toCString (this=0x15b3d28, unicode=true) at /var/portage/tmpfs/portage/media-libs/taglib-1.7.1/work/taglib-1.7.1/taglib/toolkit/tstring.cpp:257
#7  0x000000000042db97 in TagEngine::readCovers (this=<optimized out>, fileName=...) at /var/portage/tmpfs/portage/media-sound/soundkonverter-1.4.0/work/soundkonverter-1.4.0/metadata/tagengine.cpp:682
#8  0x0000000000468b08 in Convert::writeTags (this=0x11f9820, item=0x1573dc0) at /var/portage/tmpfs/portage/media-sound/soundkonverter-1.4.0/work/soundkonverter-1.4.0/convert.cpp:454
#9  0x000000000046a410 in Convert::remove (this=0x11f9820, item=0x1573dc0, state=0) at /var/portage/tmpfs/portage/media-sound/soundkonverter-1.4.0/work/soundkonverter-1.4.0/convert.cpp:1097
#10 0x000000000046d0ba in Convert::executeNextStep (this=0x11f9820, item=0x1573dc0) at /var/portage/tmpfs/portage/media-sound/soundkonverter-1.4.0/work/soundkonverter-1.4.0/convert.cpp:538
#11 0x000000000046d30b in Convert::pluginProcessFinished (this=0x11f9820, id=1, exitCode=0) at /var/portage/tmpfs/portage/media-sound/soundkonverter-1.4.0/work/soundkonverter-1.4.0/convert.cpp:819
#12 0x0000000000421469 in Convert::qt_static_metacall (_o=0x11f9820, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /var/portage/tmpfs/portage/media-sound/soundkonverter-1.4.0/work/soundkonverter-1.4.0_build/moc_convert.cpp:89
#13 0x00007ff01f21eda2 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#14 0x00007ff0209c06ff in BackendPlugin::jobFinished (this=<optimized out>, _t1=1, _t2=0) at /var/portage/tmpfs/portage/media-sound/soundkonverter-1.4.0/work/soundkonverter-1.4.0_build/moc_backendplugin.cpp:181
#15 0x00007ff0209c4fdd in BackendPlugin::processExit (this=0x10d85a0, exitCode=0, exitStatus=<optimized out>) at /var/portage/tmpfs/portage/media-sound/soundkonverter-1.4.0/work/soundkonverter-1.4.0/core/backendplugin.cpp:505
#16 0x00007ff0209c0885 in BackendPlugin::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /var/portage/tmpfs/portage/media-sound/soundkonverter-1.4.0/work/soundkonverter-1.4.0_build/moc_backendplugin.cpp:125
#17 0x00007ff01f21eda2 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#18 0x00007ff01f19e17f in QProcess::finished(int, QProcess::ExitStatus) () from /usr/lib64/qt4/libQtCore.so.4
#19 0x00007ff01f1a4eb7 in ?? () from /usr/lib64/qt4/libQtCore.so.4
#20 0x00007ff01f1a4f5e in ?? () from /usr/lib64/qt4/libQtCore.so.4
#21 0x00007ff01f21eda2 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#22 0x00007ff01f26b2ae in QSocketNotifier::activated(int) () from /usr/lib64/qt4/libQtCore.so.4
#23 0x00007ff01f226a93 in QSocketNotifier::event(QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#24 0x00007ff01fc4005c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#25 0x00007ff01fc44cfd in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#26 0x00007ff0221e4bc8 in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5
#27 0x00007ff01f20950b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#28 0x00007ff01f237f57 in ?? () from /usr/lib64/qt4/libQtCore.so.4
#29 0x00007ff01b09a75a in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#30 0x00007ff01b09aab8 in ?? () from /usr/lib64/libglib-2.0.so.0
#31 0x00007ff01b09ab6c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#32 0x00007ff01f2385d6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#33 0x00007ff01fce7d26 in ?? () from /usr/lib64/qt4/libQtGui.so.4
#34 0x00007ff01f2084b2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#35 0x00007ff01f2087a5 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#36 0x00007ff01f20cf7b in QCoreApplication::exec() () from /usr/lib64/qt4/libQtCore.so.4
#37 0x0000000000450dda in main (argc=1, argv=0x7fff5d8fd478) at /var/portage/tmpfs/portage/media-sound/soundkonverter-1.4.0/work/soundkonverter-1.4.0/main.cpp:55
Comment 1 Wonko 2012-05-03 14:20:48 UTC
Created attachment 70830 [details]
Test case

This is the first 50K of a file that triggers the problem, so you can try yourself to reproduce.
Comment 2 Scott Wheeler 2012-05-03 15:14:19 UTC
If you're getting a crash in toCString, it's most likely a bug on your end (dangling pointer or similar) since that code path is really well traversed.  You might try hitting it with valgrind.  The 'tagreader' example program from the taglib sources works fine on the file given, so we'll need a simple test case that doesn't involve the soundKonverter source code to work with to be able to proceed on this one.
Comment 3 Wonko 2012-05-18 20:07:17 UTC
Okay, thanks. It seems to be a problem of soundKonverter indeed, and it does no longer happen since I upgraded from 1.4.0. to 1.5.0. Closing.
Comment 4 Wonko 2012-05-18 20:32:27 UTC
Argh, not true. soundKonverter does not crash with the small test case I provided (I'm pretty sure it did before), but with a longer one. Anyway, I'll mail the author of soundKonverter directly.