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

            Bug ID: 461056
           Summary: Crash in external tools if JS is used
    Classification: Applications
           Product: kate
           Version: Git
          Platform: Ubuntu
                OS: Linux
            Status: REPORTED
          Severity: crash
          Priority: NOR
         Component: application
          Assignee: kwrite-bugs-n...@kde.org
          Reporter: matthew.li...@gmail.com
  Target Milestone: ---

SUMMARY
I try to add an external tool call using the external tools plugin which
requests an additional input parameter. My approach is to call a JavaScript
window.prompt() function with the %{JS:} token, and I realized calling a JS
function crashes Kate

STEPS TO REPRODUCE
1. Enable External tools
2. Create a new tool, for example:
   Executable: bash
   Arguments: -c echo "Input: '%{JS:editor.clipboardText()}"'
3. Run the new tool you created in step 2

OBSERVED RESULT
Crash

EXPECTED RESULT
Execute the tool as requested

SOFTWARE/OS VERSIONS
Kate version: 22.11.70
Linux/KDE Plasma: Ubuntu 22.04.1 LTS
KDE Plasma Version: 
KDE Frameworks Version: 5.100.0
Qt Version: 5.15.3

ADDITIONAL INFORMATION
Backtrace:
Core was generated by
`/home/pozsgai/projects/kde/build/kde/applications/kate/bin/kate'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007fd9f541d687 in KateExternalToolsPlugin::runnerForTool
(this=0x560c47290340, tool=..., view=0x0, executingSaveTrigger=false)
    at
/home/matthew/projects/kde/src/kde/applications/kate/addons/externaltools/externaltoolsplugin.cpp:250
--Type <RET> for more, q to quit, c to continue without paging--
250         auto mw = view->mainWindow();
[Current thread is 1 (Thread 0x7fda1b8e29c0 (LWP 17908))]
(gdb) bt
#0  0x00007fd9f541d687 in KateExternalToolsPlugin::runnerForTool
(this=0x560c47290340, tool=..., view=0x0, executingSaveTrigger=false)
    at
/home/matthew/projects/kde/src/kde/applications/kate/addons/externaltools/externaltoolsplugin.cpp:250
#1  0x00007fd9f541dc8c in KateExternalToolsPlugin::runTool
(this=0x560c47290340, tool=..., view=0x0, executingSaveTrigger=false)
    at
/home/matthew/projects/kde/src/kde/applications/kate/addons/externaltools/externaltoolsplugin.cpp:297
#2  0x00007fd9f54286ef in operator() (__closure=0x560c479334d0) at
/home/matthew/projects/kde/src/kde/applications/kate/addons/externaltools/kateexternaltoolsview.cpp:77
#3  0x00007fd9f542aa62 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>,
QtPrivate::List<>, void, KateExternalToolsMenuAction::reload()::<lambda()>
>::call(struct {...} &, void **) (f=..., 
    arg=0x7ffe29a42a90) at
/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:146
#4  0x00007fd9f542a9cb in
QtPrivate::Functor<KateExternalToolsMenuAction::reload()::<lambda()>,
0>::call<QtPrivate::List<>, void>(struct {...} &, void *, void **) (f=...,
arg=0x7ffe29a42a90)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:256
#5  0x00007fd9f542a970 in
QtPrivate::QFunctorSlotObject<KateExternalToolsMenuAction::reload()::<lambda()>,
0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *,
void **, bool *) (
    which=1, this_=0x560c479334c0, r=0x560c47933030, a=0x7ffe29a42a90, ret=0x0)
at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:443
#6  0x00007fda21320793 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fda21f82be6 in QAction::triggered(bool) () from
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#8  0x00007fda21f858fc in QAction::activate(QAction::ActionEvent) () from
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#9  0x00007fda22110142 in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#10 0x00007fda22117d39 in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007fda21fcc4ee in QWidget::event(QEvent*) () from
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007fda21f89713 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007fda21f91364 in QApplication::notify(QObject*, QEvent*) () from
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007fda212e8e3a in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() from /lib/x86_64-linux-gnu/libQt5Core.so.5
#15 0x00007fda21f8fe47 in QApplicationPrivate::sendMouseEvent(QWidget*,
QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) ()
from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007fda21fe6843 in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007fda21fe8fd5 in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007fda21f89713 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007fda212e8e3a in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() from /lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007fda21880307 in
QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*)
() from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#21 0x00007fda21855a2c in
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)
() from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#22 0x00007fda1af75d6e in ?? () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#23 0x00007fda1e88dd1b in g_main_context_dispatch () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#24 0x00007fda1e8e26f8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#25 0x00007fda1e88b3c3 in g_main_context_iteration () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007fda213420b8 in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /lib/x86_64-linux-gnu/libQt5Core.so.5
#27 0x00007fda212e775b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/lib/x86_64-linux-gnu/libQt5Core.so.5
#28 0x00007fda212efcf4 in QCoreApplication::exec() () from
/lib/x86_64-linux-gnu/libQt5Core.so.5
#29 0x0000560c453bc85c in main (argc=1, argv=0x7ffe29a43bb8) at
/home/matthew/projects/kde/src/kde/applications/kate/apps/kate/main.cpp:603

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to