Bug 223624 - Invalid KateScript can lead to crashes (Exception handling)
Summary: Invalid KateScript can lead to crashes (Exception handling)
Status: RESOLVED FIXED
Alias: None
Product: kate
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Arch Linux Linux
: VHI crash
Target Milestone: ---
Assignee: KWrite Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-01-20 23:06 UTC by Milian Wolff
Modified: 2010-02-16 18:26 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Milian Wolff 2010-01-20 23:06:33 UTC
Application: kate (3.3.90)
KDE Platform Version: 4.3.90 (KDE 4.3.90 (KDE 4.4 RC1))
Qt Version: 4.6.0
Operating System: Linux 2.6.32-ARCH x86_64
Distribution (Platform): Archlinux Packages

-- Information about the crash:
To reproduce:

/* kate-script
 * author: Foo Bar <asdf@xyz.com>
 * license: LGPL
 * revision: 1
 * kate-version: 3.4
 * type: commands
 * functions: foo-bar
 */
function foo-bar() {}

Note that foo-bar is an invalid identifier for a function in javascript. nevertheless Kate offers codecompletion for it and when trying to execute it, Kate crashes. The problem is that an exception was triggered and the KateScript got deleted, but the list contains simple pointers and no QWeakPointer or similar.

The crash can be reproduced every time.

 -- Backtrace:
Application: Kate (kate), signal: Segmentation fault
[Current thread is 1 (Thread 0x7f073668b760 (LWP 11288))]

Thread 2 (Thread 0x7f0724482710 (LWP 11290)):
#0  0x00007f073392a07c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f0729ae72a6 in ?? () from /usr/lib/libQtScript.so.4
#2  0x00007f0729ae72e9 in ?? () from /usr/lib/libQtScript.so.4
#3  0x00007f073392581a in start_thread () from /lib/libpthread.so.0
#4  0x00007f073601bc7d in clone () from /lib/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f073668b760 (LWP 11288)):
[KCrash Handler]
#5  0x00007f0729b03896 in QScriptEngine::clearExceptions() () from /usr/lib/libQtScript.so.4
#6  0x00007f072a10a7fa in KateCommandLineScript::callFunction (this=0x0, cmd=..., args=) at /home/build/build/x86_64/kdelibs/src/kdelibs/kate/script/katecommandlinescript.cpp:43
#7  0x00007f072a10f81b in KateScriptManager::exec (this=<value optimized out>, view=<value optimized out>, _cmd=<value optimized out>, errorMsg=...)
    at /home/build/build/x86_64/kdelibs/src/kdelibs/kate/script/katescriptmanager.cpp:321
#8  0x00007f072a19b902 in KateCmdLineEdit::slotReturnPressed (this=0x2313c00, text=<value optimized out>) at /home/build/build/x86_64/kdelibs/src/kdelibs/kate/view/kateviewhelpers.cpp:500
#9  0x00007f072a19be59 in KateCmdLineEdit::qt_metacall (this=0x2313c00, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff8f89aab0)
    at /home/build/build/x86_64/kdelibs/src/build/kate/kateviewhelpers.moc:542
#10 0x00007f0733fca0b3 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#11 0x00007f073483f2e5 in KLineEdit::returnPressed (this=0x0, _t1=<value optimized out>) at /home/build/build/x86_64/kdelibs/src/build/kdeui/klineedit.moc:226
#12 0x00007f0734844634 in KLineEdit::event (this=0x2313c00, ev=0x7fff8f89b080) at /home/build/build/x86_64/kdelibs/src/kdelibs/kdeui/widgets/klineedit.cpp:1308
#13 0x00007f072a19bea5 in KateCmdLineEdit::event (this=0x2313c00, e=0x7fff8f89a4e0) at /home/build/build/x86_64/kdelibs/src/kdelibs/kate/view/kateviewhelpers.cpp:401
#14 0x00007f073547e6bc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#15 0x00007f0735486394 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#16 0x00007f07347722b6 in KApplication::notify (this=0x7fff8f89c090, receiver=0x2313c00, event=0x7fff8f89b080) at /home/build/build/x86_64/kdelibs/src/kdelibs/kdeui/kernel/kapplication.cpp:302
#17 0x00007f0733fb73dc in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#18 0x00007f07355264fa in ?? () from /usr/lib/libQtGui.so.4
#19 0x00007f0735528a31 in ?? () from /usr/lib/libQtGui.so.4
#20 0x00007f0735501254 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4
#21 0x00007f073552bb9a in ?? () from /usr/lib/libQtGui.so.4
#22 0x00007f073328926e in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#23 0x00007f073328cc28 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#24 0x00007f073328cd50 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#25 0x00007f0733fe0923 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#26 0x00007f073552b79e in ?? () from /usr/lib/libQtGui.so.4
#27 0x00007f0733fb5d02 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#28 0x00007f0733fb60dc in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#29 0x00007f0733fb9e1b in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#30 0x00007f07362a9e1d in kdemain (argc=<value optimized out>, argv=<value optimized out>) at /home/build/build/x86_64/kdesdk/src/kdesdk/kate/app/katemain.cpp:377
#31 0x00007f0735f6bb6d in __libc_start_main () from /lib/libc.so.6
#32 0x0000000000400629 in _start ()

Reported using DrKonqi
Comment 1 Dominik Haumann 2010-02-16 18:25:15 UTC
SVN commit 1091093 by dhaumann:

fix crash: Invalid KateScript can lead to crash

BUG: 223624

 M  +10 -3     katecommandlinescript.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1091093
Comment 2 Dominik Haumann 2010-02-16 18:26:52 UTC
SVN commit 1091094 by dhaumann:

fix crash: Invalid KateScript can lead to crash

CCBUG: 223624


 M  +10 -3     katecommandlinescript.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1091094