[Konsole-devel] [Bug 303390] New: Konsole crashes when selecting invalid unicode character.

Thomas Lindroth thomas.lindroth at gmail.com
Wed Jul 11 21:47:35 UTC 2012


https://bugs.kde.org/show_bug.cgi?id=303390

            Bug ID: 303390
          Severity: critical
           Version: 2.9.3
          Priority: NOR
          Assignee: konsole-devel at kde.org
           Summary: Konsole crashes when selecting invalid unicode
                    character.
    Classification: Unclassified
                OS: Linux
          Reporter: thomas.lindroth at gmail.com
          Hardware: Gentoo Packages
            Status: UNCONFIRMED
         Component: general
           Product: konsole

Konsole crashes when I try to select a line of text with an invalid unicode
character. The text is japanese and can be printed by running
echo "44Kt44KZ44Oj44OrCg==" | base64 -d
It should look like キャル with the invalid character between キ and ャ.

It only crash when the line is selected back to front. Selecting the entire
line or from front to back works fine.

I'm using the font called Console from console8x16.pcf.gz but it's only a
bitmap font for ascii. It looks like Konsole is falling back to using Arial
Unicode for the rest.

Konsole will freeze and use all available cpu for about 15 sec before the
crash. I get no useful info from the backtrace. This is the error that is
printed.
Qt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt. You must
reimplement QApplication::notify() and catch all exceptions there.

terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
KCrash: Application 'konsole' crashing...
KCrash: Attempting to start /usr/lib64/kde4/libexec/drkonqi from kdeinit

Here is the output from the crash handler.
Application: Konsole (konsole), signal: Aborted
[Current thread is 1 (Thread 0x7fd774575760 (LWP 10258))]

Thread 3 (Thread 0x7fd761556700 (LWP 10259)):
#0  0x00007fd773eda963 in poll () from /lib64/libc.so.6
#1  0x00007fd76de98406 in g_main_context_iterate.isra.23 () from
/usr/lib64/libglib-2.0.so.0
#2  0x00007fd76de98534 in g_main_context_iteration () from
/usr/lib64/libglib-2.0.so.0
#3  0x00007fd772a4c96f in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /usr/lib64/qt4/libQtCore.so.4
#4  0x00007fd772a1cad2 in
QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from
/usr/lib64/qt4/libQtCore.so.4
#5  0x00007fd772a1cd27 in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/usr/lib64/qt4/libQtCore.so.4
#6  0x00007fd77291de97 in QThread::exec() () from /usr/lib64/qt4/libQtCore.so.4
#7  0x00007fd7729fca8f in QInotifyFileSystemWatcherEngine::run() () from
/usr/lib64/qt4/libQtCore.so.4
#8  0x00007fd772920e9b in QThreadPrivate::start(void*) () from
/usr/lib64/qt4/libQtCore.so.4
#9  0x00007fd77268ae2c in start_thread () from /lib64/libpthread.so.0
#10 0x00007fd773ee34fd in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7fd760770700 (LWP 10261)):
#0  0x00007fd773edcf73 in select () from /lib64/libc.so.6
#1  0x00007fd7729faf41 in QProcessManager::run() () from
/usr/lib64/qt4/libQtCore.so.4
#2  0x00007fd772920e9b in QThreadPrivate::start(void*) () from
/usr/lib64/qt4/libQtCore.so.4
#3  0x00007fd77268ae2c in start_thread () from /lib64/libpthread.so.0
#4  0x00007fd773ee34fd in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7fd774575760 (LWP 10258)):
[KCrash Handler]
#6  0x00007fd773e40b35 in raise () from /lib64/libc.so.6
#7  0x00007fd773e41fab in abort () from /lib64/libc.so.6
#8  0x00007fd7717862bd in __gnu_cxx::__verbose_terminate_handler() () from
/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/libstdc++.so.6
#9  0x00007fd771784476 in __cxxabiv1::__terminate(void (*)()) () from
/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/libstdc++.so.6
#10 0x00007fd7717844a3 in std::terminate() () from
/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/libstdc++.so.6
#11 0x00007fd7717845e6 in __cxa_rethrow () from
/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/libstdc++.so.6
#12 0x00007fd772a1cf9f in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/usr/lib64/qt4/libQtCore.so.4
#13 0x00007fd772a21835 in QCoreApplication::exec() () from
/usr/lib64/qt4/libQtCore.so.4
#14 0x00007fd7741a8032 in kdemain () from /usr/lib64/libkdeinit4_konsole.so
#15 0x00007fd773e2d3dd in __libc_start_main () from /lib64/libc.so.6
#16 0x0000000000400791 in _start ()

I can recompile Qt with debug symbols if that would help.

Konsole is 2.8.3, qt 4.8.1

Reproducible: Always

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the konsole-devel mailing list