SUMMARY When changing the date for a transaction e.g. into the wrong "01.01.01.2001", kMyMoney consistently crashes immediately. STEPS TO REPRODUCE 1. Create a new transaction or edit an existing one 2. Select date 3. Change to non-date format OBSERVED RESULT Immediate crash EXPECTED RESULT Error message/highlighted problem in the date field SOFTWARE/OS VERSIONS Windows: macOS: (available in the Info Center app, or by running `kinfo` in a terminal window) Linux/KDE Plasma: KDE Plasma Version: 6.4.4 KDE Frameworks Version: 6.17.1 Qt Version: 6.9.1 ADDITIONAL INFORMATION Backtrace: #0 0x00007ffff54a9967 in QString::append(QChar) () from /lib64/libQt6Core.so.6 #1 0x00007ffff7ce6ecd in ?? () from /lib64/libkmm_base_widgets.so.5 #2 0x00007ffff7ce7905 in ?? () from /lib64/libkmm_base_widgets.so.5 #3 0x00007ffff542fb14 in ?? () from /lib64/libQt6Core.so.6 #4 0x00007ffff6783bfb in QLineEdit::textChanged(QString const&) () from /lib64/libQt6Widgets.so.6 #5 0x00007ffff542fb14 in ?? () from /lib64/libQt6Core.so.6 #6 0x00007ffff678d9fe in QWidgetLineControl::textChanged(QString const&) () from /lib64/libQt6Widgets.so.6 #7 0x00007ffff679271c in QWidgetLineControl::finishChange(int, bool, bool) () from /lib64/libQt6Widgets.so.6 #8 0x00007ffff67958ef in QWidgetLineControl::processKeyEvent(QKeyEvent*) () from /lib64/libQt6Widgets.so.6 #9 0x00007ffff6781abd in QLineEdit::keyPressEvent(QKeyEvent*) () from /lib64/libQt6Widgets.so.6 #10 0x00007ffff663caf1 in QWidget::event(QEvent*) () from /lib64/libQt6Widgets.so.6 #11 0x00007ffff7ce981b in KMyMoneyDateEdit::keyPressEvent(QKeyEvent*) () from /lib64/libkmm_base_widgets.so.5 #12 0x00007ffff663caf1 in QWidget::event(QEvent*) () from /lib64/libQt6Widgets.so.6 #13 0x00007ffff65e37a8 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib64/libQt6Widgets.so.6 #14 0x00007ffff65e79b4 in QApplication::notify(QObject*, QEvent*) () from /lib64/libQt6Widgets.so.6 #15 0x00007ffff53c8928 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib64/libQt6Core.so.6 #16 0x00007ffff6657aea in ?? () from /lib64/libQt6Widgets.so.6 #17 0x00007ffff65e37a8 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib64/libQt6Widgets.so.6 #18 0x00007ffff53c8928 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib64/libQt6Core.so.6 #19 0x00007ffff5c29f13 in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) () from /lib64/libQt6Gui.so.6 #20 0x00007ffff5c9cecb in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt6Gui.so.6 #21 0x00007ffff5c9d067 in QWindowSystemInterface::flushWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt6Gui.so.6 --Type <RET> for more, q to quit, c to continue without paging-- #22 0x00007ffff541ce34 in QObject::event(QEvent*) () from /lib64/libQt6Core.so.6 #23 0x00007ffff65e37a8 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib64/libQt6Widgets.so.6 #24 0x00007ffff53c8928 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib64/libQt6Core.so.6 #25 0x00007ffff53cacc7 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /lib64/libQt6Core.so.6 #26 0x00007ffff56818a7 in ?? () from /lib64/libQt6Core.so.6 #27 0x00007fffe73090b6 in g_main_dispatch (context=0x7fffd8000f70) at ../glib/gmain.c:3398 #28 g_main_context_dispatch_unlocked (context=context@entry=0x7fffd8000f70) at ../glib/gmain.c:4249 #29 0x00007fffe730aee8 in g_main_context_iterate_unlocked (context=context@entry=0x7fffd8000f70, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4314 #30 0x00007fffe730b72c in g_main_context_iteration (context=0x7fffd8000f70, may_block=1) at ../glib/gmain.c:4379 #31 0x00007ffff567f978 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt6Core.so.6 #32 0x00007ffff53d6003 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt6Core.so.6 #33 0x00007ffff53cd143 in QCoreApplication::exec() () from /lib64/libQt6Core.so.6 #34 0x000055555563b948 in ?? () #35 0x00007ffff4a2b2fb in __libc_start_call_main (main=main@entry=0x55555563a370, argc=argc@entry=1, argv=argv@entry=0x7fffffffd848) at ../sysdeps/nptl/libc_start_call_main.h:58 #36 0x00007ffff4a2b3cb in __libc_start_main_impl (main=0x55555563a370, argc=1, argv=0x7fffffffd848, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffd838) at ../csu/libc-start.c:360 #37 0x000055555563c295 in ?? ()
I can confirm with kmymoney 5.2.70-8edfeeb23 just built from master branch. Not sure if this bt might be more useful. If I place the cursor on the first 2 of 2025 and type 11/ it crashes on typing the slash. If I delete 2025 and type 11/2 it crashes on typing the 2. #0 0x00007ffff5476aec in ?? () from /usr/lib/libQt6Core.so.6 #1 0x00007ffff545a1a0 in QString::append(QChar) () from /usr/lib/libQt6Core.so.6 #2 0x00007ffff7c89826 in KMyMoneyDateEditPrivate::editParts (this=0x555557072180) at /home/jack/KDE/KMM/kmymoney/kmymoney/kmymoney/widgets/kmymoneydateedit.cpp:156 #3 KMyMoneyDateEditPrivate::fixupDate (this=0x555557072180) at /home/jack/KDE/KMM/kmymoney/kmymoney/kmymoney/widgets/kmymoneydateedit.cpp:180 #4 0x00007ffff7c86455 in operator() (__closure=0x555557072650, text=...) at /home/jack/KDE/KMM/kmymoney/kmymoney/kmymoney/widgets/kmymoneydateedit.cpp:421 #5 operator() (__closure=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:116 #6 QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<long unsigned int, 0>, QtPrivate::List<const QString&>, void, KMyMoneyDateEdit::KMyMoneyDateEdit(QWidget*)::<lambda(const QString&)> >::call(KMyMoneyDateEdit::KMyMoneyDateEdit(QWidget*)::<lambda(const QString&)>&, void**) ::<lambda()> > (args=<optimized out>, fn=...) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:65 #7 QtPrivate::FunctorCall<std::integer_sequence<long unsigned int, 0>, QtPrivate::List<const QString&>, void, KMyMoneyDateEdit::KMyMoneyDateEdit(QWidget*)::<l ambda(const QString&)> >::call (f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:115 #8 QtPrivate::FunctorCallable<KMyMoneyDateEdit::KMyMoneyDateEdit(QWidget*)::<lambda(const QString&)>, const QString&>::call<QtPrivate::List<QString const&>, v oid> (f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:337 #9 QtPrivate::QCallableObject<KMyMoneyDateEdit::KMyMoneyDateEdit(QWidget*)::<lambda(const QString&)>, QtPrivate::List<const QString&>, void>::impl(int, QtPriv ate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x555557072640, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:547 #10 0x00007ffff53d2a37 in ?? () from /usr/lib/libQt6Core.so.6 #11 0x00007ffff66b0cbc in QLineEdit::textChanged(QString const&) () from /usr/lib/libQt6Widgets.so.6 #12 0x00007ffff53d2a37 in ?? () from /usr/lib/libQt6Core.so.6 #13 0x00007ffff66c04fa in QWidgetLineControl::finishChange(int, bool, bool) () from /usr/lib/libQt6Widgets.so.6 #14 0x00007ffff66c2cc0 in QWidgetLineControl::processKeyEvent(QKeyEvent*) () from /usr/lib/libQt6Widgets.so.6 #15 0x00007ffff66ad43d in QLineEdit::keyPressEvent(QKeyEvent*) () from /usr/lib/libQt6Widgets.so.6 #16 0x00007ffff655a73a in QWidget::event(QEvent*) () from /usr/lib/libQt6Widgets.so.6 #17 0x00007ffff7c87183 in KMyMoneyDateEdit::keyPressEvent (this=0x555557031000, keyEvent=0x7fffffffd470) at /home/jack/KDE/KMM/kmymoney/kmymoney/kmymoney/widgets/kmymoneydateedit.cpp:644 #18 0x00007ffff655a73a in QWidget::event(QEvent*) () from /usr/lib/libQt6Widgets.so.6 #19 0x00007ffff6501c99 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt6Widgets.so.6 #20 0x00007ffff6505b51 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt6Widgets.so.6 #21 0x00007ffff5367f28 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt6Core.so.6 #22 0x00007ffff65773bb in ?? () from /usr/lib/libQt6Widgets.so.6 #23 0x00007ffff6501c99 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt6Widgets.so.6 #24 0x00007ffff5367f28 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt6Core.so.6 #25 0x00007ffff5b9afac in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) () from /usr/lib/libQt6Gui.so.6 #26 0x00007ffff5c226b4 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt6Gui.so.6 #27 0x00007ffff5c11c97 in QWindowSystemInterface::flushWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt6Gui.so.6 #28 0x00007ffff53c0334 in QObject::event(QEvent*) () from /usr/lib/libQt6Core.so.6 #29 0x00007ffff6501c99 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt6Widgets.so.6 #30 0x00007ffff5367f28 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt6Core.so.6 #31 0x00007ffff53682db in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt6Core.so.6 #32 0x00007ffff563a620 in ?? () from /usr/lib/libQt6Core.so.6 #33 0x00007fffe7b05b48 in ?? () from /usr/lib/libglib-2.0.so.0 #34 0x00007fffe7b06eff in ?? () from /usr/lib/libglib-2.0.so.0 #35 0x00007fffe7b07082 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #36 0x00007ffff5636e3b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt6Core.so.6 #37 0x00007ffff53741a5 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt6Core.so.6 #38 0x00007ffff536c44b in QCoreApplication::exec() () from /usr/lib/libQt6Core.so.6 #39 0x000055555561893e in main (argc=<optimized out>, argv=<optimized out>) at /home/jack/KDE/KMM/kmymoney/kmymoney/kmymoney/main.cpp:289