Bug 402307

Summary: crash when pasting clipboard into form field
Product: [Applications] okular Reporter: Martin Koller <kollix>
Component: generalAssignee: Okular developers <okular-devel>
Status: RESOLVED FIXED    
Severity: crash CC: aacid
Priority: NOR Keywords: drkonqi
Version: unspecified   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Martin Koller 2018-12-18 15:03:25 UTC
Application: okular (1.4.3)

Qt Version: 5.9.4
Frameworks Version: 5.45.0
Operating System: Linux 4.12.14-lp150.12.28-default x86_64
Distribution: "openSUSE Leap 15.0"

-- Information about the crash:
- What I was doing when the application crashed:

I opened the form pdf from
https://formulare.bmf.gv.at/service/formulare/inter-Steuern/pdfs/9999/E30.pdf
activated to show the form fields, selected some text from a different browser window with the mouse,
then clicked into the first input field and middle-clicked to paste the text -> crash

The crash can be reproduced every time.

-- Backtrace:
Application: Okular (okular), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fa12b93d340 (LWP 27377))]

Thread 3 (Thread 0x7fa10b130700 (LWP 27379)):
#0  0x00007fa12766eb68 in read () from /lib64/libc.so.6
#1  0x00007fa12236ca90 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007fa122327cb7 in g_main_context_check () from /usr/lib64/libglib-2.0.so.0
#3  0x00007fa122328170 in ?? () from /usr/lib64/libglib-2.0.so.0
#4  0x00007fa1223282dc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#5  0x00007fa127fa1c0b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#6  0x00007fa127f4a09a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#7  0x00007fa127d794da in QThread::exec() () from /usr/lib64/libQt5Core.so.5
#8  0x00007fa128421985 in ?? () from /usr/lib64/libQt5DBus.so.5
#9  0x00007fa127d7e0ce in ?? () from /usr/lib64/libQt5Core.so.5
#10 0x00007fa12465e559 in start_thread () from /lib64/libpthread.so.0
#11 0x00007fa12767d81f in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7fa119a2d700 (LWP 27378)):
#0  0x00007fa12767307b in poll () from /lib64/libc.so.6
#1  0x00007fa124a85387 in ?? () from /usr/lib64/libxcb.so.1
#2  0x00007fa124a86fba in xcb_wait_for_event () from /usr/lib64/libxcb.so.1
#3  0x00007fa11c7e5029 in ?? () from /usr/lib64/libQt5XcbQpa.so.5
#4  0x00007fa127d7e0ce in ?? () from /usr/lib64/libQt5Core.so.5
#5  0x00007fa12465e559 in start_thread () from /lib64/libpthread.so.0
#6  0x00007fa12767d81f in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7fa12b93d340 (LWP 27377)):
[KCrash Handler]
#6  Okular::Page::number (this=this@entry=0x0) at /usr/src/debug/okular-18.04.3-lp150.1.1.x86_64/core/page.cpp:157
#7  0x00007fa109718e77 in Okular::JSField::wrapField (ctx=ctx@entry=0x7fffada34658, field=<optimized out>, field@entry=0x556f2d7b9ba0, page=0x0) at /usr/src/debug/okular-18.04.3-lp150.1.1.x86_64/core/script/kjs_field.cpp:232
#8  0x00007fa1097175a9 in eventGetTarget (ctx=0x7fffada34658, object=0x556f2d9459a0) at /usr/src/debug/okular-18.04.3-lp150.1.1.x86_64/core/script/kjs_event.cpp:73
#9  0x00007fa108c1383f in ?? () from /usr/lib64/libKF5JSApi.so.5
#10 0x00007fa108769d0f in KJS::JSObject::get(KJS::ExecState*, KJS::Identifier const&) const () from /usr/lib64/libKF5JS.so.5
#11 0x00007fa1087801ad in ?? () from /usr/lib64/libKF5JS.so.5
#12 0x00007fa108738e8b in ?? () from /usr/lib64/libKF5JS.so.5
#13 0x00007fa10876e6db in ?? () from /usr/lib64/libKF5JS.so.5
#14 0x00007fa10876e853 in KJS::Interpreter::evaluate(KJS::UString const&, int, KJS::UChar const*, int, KJS::JSValue*) () from /usr/lib64/libKF5JS.so.5
#15 0x00007fa10876e8df in KJS::Interpreter::evaluate(KJS::UString const&, int, KJS::UString const&, KJS::JSValue*) () from /usr/lib64/libKF5JS.so.5
#16 0x00007fa108c1264a in KJSInterpreter::evaluate(QString const&, int, QString const&, KJSObject*) () from /usr/lib64/libKF5JSApi.so.5
#17 0x00007fa10971163f in Okular::ExecutorKJS::execute (this=this@entry=0x556f2d8d3850, script=..., event=event@entry=0x556f2d9459a0) at /usr/src/debug/okular-18.04.3-lp150.1.1.x86_64/core/script/executor_kjs.cpp:108
#18 0x00007fa1096f8f90 in Okular::Scripter::execute (this=<optimized out>, type=<optimized out>, script=...) at /usr/src/debug/okular-18.04.3-lp150.1.1.x86_64/core/scripter.cpp:79
#19 0x00007fa1096cab14 in Okular::Document::processAction (this=<optimized out>, action=0x556f2d7c4a30) at /usr/src/debug/okular-18.04.3-lp150.1.1.x86_64/core/document.cpp:4244
#20 0x00007fa1096d3918 in Okular::DocumentPrivate::recalculateForms (this=0x556f2d128600) at /usr/src/debug/okular-18.04.3-lp150.1.1.x86_64/core/document.cpp:1148
#21 0x00007fa1096d3dc5 in Okular::DocumentPrivate::notifyFormChanges (this=<optimized out>) at /usr/src/debug/okular-18.04.3-lp150.1.1.x86_64/core/document.cpp:3427
#22 0x00007fa1096e72ed in Okular::EditFormTextCommand::redo (this=0x556f2d98c240) at /usr/src/debug/okular-18.04.3-lp150.1.1.x86_64/core/documentcommands.cpp:518
#23 0x00007fa129535396 in QUndoStack::push(QUndoCommand*) () from /usr/lib64/libQt5Widgets.so.5
#24 0x00007fa1096d3e6f in Okular::Document::editFormText (this=0x556f2d1b3ed0, pageNumber=0, form=0x556f2d7b4cf0, newContents=..., newCursorPos=27, prevCursorPos=0, prevAnchorPos=0) at /usr/src/debug/okular-18.04.3-lp150.1.1.x86_64/core/document.cpp:3942
#25 0x00007fa109a2f25d in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1, 2, 3, 4, 5>, QtPrivate::List<int, Okular::FormFieldText*, QString const&, int, int, int>, void, void (Okular::Document::*)(int, Okular::FormFieldText*, QString const&, int, int, int)>::call (arg=<optimized out>, o=<optimized out>, f=<optimized out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:136
#26 QtPrivate::FunctionPointer<void (Okular::Document::*)(int, Okular::FormFieldText*, QString const&, int, int, int)>::call<QtPrivate::List<int, Okular::FormFieldText*, QString const&, int, int, int>, void> (arg=<optimized out>, o=<optimized out>, f=<optimized out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:169
#27 QtPrivate::QSlotObject<void (Okular::Document::*)(int, Okular::FormFieldText*, QString const&, int, int, int), QtPrivate::List<int, Okular::FormFieldText*, QString const&, int, int, int>, void>::impl (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt5/QtCore/qobject_impl.h:120
#28 0x00007fa127f7914c in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib64/libQt5Core.so.5
#29 0x00007fa109a27f6f in FormWidgetsController::formTextChangedByWidget (_t6=<optimized out>, _t5=<optimized out>, _t4=<optimized out>, _t3=..., _t2=<optimized out>, _t1=<optimized out>, this=0x556f2d803990) at /usr/src/debug/okular-18.04.3-lp150.1.1.x86_64/build/okularpart_autogen/include/moc_formwidgets.cpp:392
#30 FormLineEdit::slotChanged (this=0x556f2d8196e0) at /usr/src/debug/okular-18.04.3-lp150.1.1.x86_64/ui/formwidgets.cpp:528
#31 0x00007fa127f7914c in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib64/libQt5Core.so.5
#32 0x00007fa12932d7d5 in QLineEdit::textEdited(QString const&) () from /usr/lib64/libQt5Widgets.so.5
#33 0x00007fa12932b2ad in ?? () from /usr/lib64/libQt5Widgets.so.5
#34 0x00007fa12933387d in ?? () from /usr/lib64/libQt5Widgets.so.5
#35 0x00007fa127f7904a in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib64/libQt5Core.so.5
#36 0x00007fa129334285 in QWidgetLineControl::textEdited(QString const&) () from /usr/lib64/libQt5Widgets.so.5
#37 0x00007fa129337383 in QWidgetLineControl::finishChange(int, bool, bool) () from /usr/lib64/libQt5Widgets.so.5
#38 0x00007fa12933155d in QLineEdit::mouseReleaseEvent(QMouseEvent*) () from /usr/lib64/libQt5Widgets.so.5
#39 0x00007fa129232ce8 in QWidget::event(QEvent*) () from /usr/lib64/libQt5Widgets.so.5
#40 0x00007fa12933308a in QLineEdit::event(QEvent*) () from /usr/lib64/libQt5Widgets.so.5
#41 0x00007fa1291f6e8c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQt5Widgets.so.5
#42 0x00007fa1291fe79f in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQt5Widgets.so.5
#43 0x00007fa127f4ba88 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib64/libQt5Core.so.5
#44 0x00007fa1291fd7ef in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib64/libQt5Widgets.so.5
#45 0x00007fa12924d2ab in ?? () from /usr/lib64/libQt5Widgets.so.5
#46 0x00007fa12924f701 in ?? () from /usr/lib64/libQt5Widgets.so.5
#47 0x00007fa1291f6e8c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQt5Widgets.so.5
#48 0x00007fa1291fe244 in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQt5Widgets.so.5
#49 0x00007fa127f4ba88 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib64/libQt5Core.so.5
#50 0x00007fa128a3818b in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib64/libQt5Gui.so.5
#51 0x00007fa128a39ac5 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib64/libQt5Gui.so.5
#52 0x00007fa128a1265b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Gui.so.5
#53 0x00007fa11c8450f0 in ?? () from /usr/lib64/libQt5XcbQpa.so.5
#54 0x00007fa122328017 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#55 0x00007fa122328250 in ?? () from /usr/lib64/libglib-2.0.so.0
#56 0x00007fa1223282dc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#57 0x00007fa127fa1bef in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#58 0x00007fa127f4a09a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#59 0x00007fa127f529e4 in QCoreApplication::exec() () from /usr/lib64/libQt5Core.so.5
#60 0x0000556f2cb6b317 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/okular-18.04.3-lp150.1.1.x86_64/shell/main.cpp:87
[Inferior 1 (process 27377) detached]

Reported using DrKonqi
Comment 1 Albert Astals Cid 2018-12-18 21:35:27 UTC
pasting not needed ;)
Comment 2 Albert Astals Cid 2018-12-18 21:49:06 UTC
Git commit ba5ec662a238584e66fd91c7fab728400021fcd1 by Albert Astals Cid.
Committed on 18/12/2018 at 21:48.
Pushed by aacid into branch 'Applications/18.12'.

Fix crash when writing to some forms

typo type typeo :D

M  +1    -1    core/script/event.cpp

https://commits.kde.org/okular/ba5ec662a238584e66fd91c7fab728400021fcd1