Summary: | segfault when using encoding ucs2/utf16 | ||
---|---|---|---|
Product: | [Applications] konversation | Reporter: | Johannes E. Krause <j.k> |
Component: | general | Assignee: | Konversation Developers <konversation-devel> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | wordsizzle |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
Johannes E. Krause
2009-08-12 17:18:19 UTC
> konversation --version
Qt: 4.5.3
KDE: 4.3.63 (KDE 4.3.63 (KDE 4.4 >= 20090805)) "release 2"
Konversation: 1.2-alpha6
I can confirm this. By reverting the imporoper codec warning dialog it still crashes. The following is a better backtrace than the above (with the warning dialog reverted): Application: Konversation (konversation), signal: Segmentation fault [Current thread is 0 (LWP 24309)] Thread 2 (Thread 0xb34d7b90 (LWP 24311)): #0 0xb7f51430 in __kernel_vsyscall () #1 0xb5cb70e5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0 #2 0xb601f2ed in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6 #3 0xb6baa172 in QWaitCondition::wait (this=0xa1e7d28, mutex=0xa1e7d24, time=4294967295) at thread/qwaitcondition_unix.cpp:87 #4 0xb74ceac2 in QHostInfoAgent::run (this=0xa1e7d18) at kernel/qhostinfo.cpp:260 #5 0xb6ba9132 in QThreadPrivate::start (arg=0xa1e7d18) at thread/qthread_unix.cpp:188 #6 0xb5cb34ff in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #7 0xb601049e in clone () from /lib/tls/i686/cmov/libc.so.6 Thread 1 (Thread 0xb56af700 (LWP 24309)): [KCrash Handler] #6 QTextCodec::fromUnicode (this=0x0, str=@0xbf96ba18) at codecs/qtextcodec.cpp:1189 #7 0x080d5281 in Server::_send_internal (this=0xa10f8c8, outputLine= {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 8951}, alloc = 0, size = 0, data = 0x826b822, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 261}, alloc = 0, size = 0, data = 0xb6d9146e, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0xbf96ba18, static codecForCStrings = 0x0}) at /home/word/Packages/konvi-test/src/irc/server.cpp:1174 #8 0x080d5c0f in Server::toServer (this=0xa10f8c8, s=@0xbf96ba48, q=0x9e9bc48) at /home/word/Packages/konvi-test/src/irc/server.cpp:1232 #9 0x081485ed in IRCQueue::doSend (this=0x9e9bc48) at /home/word/Packages/konvi-test/src/irc/ircqueue.cpp:172 #10 0x08148632 in IRCQueue::sendNow (this=0x9e9bc48) at /home/word/Packages/konvi-test/src/irc/ircqueue.cpp:195 #11 0x081486f0 in IRCQueue::qt_metacall (this=0x9e9bc48, _c=QMetaObject::InvokeMetaMethod, _id=-1080641000, _a=0xbf96bb08) at /home/word/Packages/konvi-test/build/src/ircqueue.moc:71 #12 0xb6cb31b8 in QMetaObject::activate (sender=0xa10f448, from_signal_index=4, to_signal_index=4, argv=0x0) at kernel/qobject.cpp:3113 #13 0xb6cb3e42 in QMetaObject::activate (sender=0xa10f448, m=0xb6d90904, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3187 #14 0xb6cef687 in QTimer::timeout (this=0xa10f448) at .moc/release-shared/moc_qtimer.cpp:128 #15 0xb6cb95ce in QTimer::timerEvent (this=0xa10f448, e=0xbf96bf8c) at kernel/qtimer.cpp:261 #16 0xb6cae16f in QObject::event (this=0xa10f448, e=0xbf96bf8c) at kernel/qobject.cpp:1075 #17 0xb62d4d3c in QApplicationPrivate::notify_helper (this=0x9dae568, receiver=0xa10f448, e=0xbf96bf8c) at kernel/qapplication.cpp:4056 #18 0xb62dd03e in QApplication::notify (this=0xbf96c220, receiver=0xa10f448, e=0xbf96bf8c) at kernel/qapplication.cpp:3603 #19 0xb72525cd in KApplication::notify (this=0xbf96c220, receiver=0xa10f448, event=0xbf96bf8c) at /build/buildd/kde4libs-4.3.0/kdeui/kernel/kapplication.cpp:302 #20 0xb6c9dbcb in QCoreApplication::notifyInternal (this=0xbf96c220, receiver=0xa10f448, event=0xbf96bf8c) at kernel/qcoreapplication.cpp:610 #21 0xb6cccd51 in QTimerInfoList::activateTimers (this=0x9db06b4) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:213 #22 0xb6cc93a0 in timerSourceDispatch (source=0x9db0680) at kernel/qeventdispatcher_glib.cpp:165 #23 0xb5b87b88 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #24 0xb5b8b0eb in ?? () from /usr/lib/libglib-2.0.so.0 #25 0xb5b8b268 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #26 0xb6cc92f8 in QEventDispatcherGlib::processEvents (this=0x9d8ccd8, flags={i = -1080639224}) at kernel/qeventdispatcher_glib.cpp:327 #27 0xb6376a75 in QGuiEventDispatcherGlib::processEvents (this=0x9d8ccd8, flags={i = -1080639176}) at kernel/qguieventdispatcher_glib.cpp:202 #28 0xb6c9c1fa in QEventLoop::processEvents (this=0xbf96c1b0, flags={i = -1080639112}) at kernel/qeventloop.cpp:149 #29 0xb6c9c642 in QEventLoop::exec (this=0xbf96c1b0, flags={i = -1080639048}) at kernel/qeventloop.cpp:201 #30 0xb6c9eae9 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888 #31 0xb62d4bb7 in QApplication::exec () at kernel/qapplication.cpp:3525 #32 0x080a0c92 in main (argc=3, argv=0xbf96c5e4) at /home/word/Packages/konvi-test/src/main.cpp:101 SVN commit 1010563 by tjmchenry: Use isChecked in channellistpanel instead of checkedState() *facepalm* Remove ucs2 because it's a duplicate of UTF-16 Because utf-16 is already removed, during the shortname->codec conversion no codec is found for ucs2, resulting in a null codec, and a crash. I tried to protect the pointer so this doesn't happen in the future..lemme know if i embarassed myself BUG:203583 M +3 -3 channellistpanel.cpp M +2 -0 irccharsets.cpp M +7 -3 outputfilter.cpp M +9 -3 server.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1010563 |