Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-73068

QDateTimeEdit Segmentation Fault with "MMM" Formatting

    XMLWordPrintable

Details

    • Bug
    • Resolution: Cannot Reproduce
    • Not Evaluated
    • None
    • 4.8.5, 4.8.7
    • None
    • RHEL 6.10 x86_64, gcc 4.8.5
    • Linux/X11

    Description

      When creating a QDateTimeEdit with its date-time being in the month of January and display format set to "MMM", editing the month with user input will / can cause a segmentation fault.

      Steps to reproduce : 

      1. Set OS date-time to January
      2. With QDateTimeEdit displaying "MMM" as "Jan", place mouse cursor after 'n'.
      3. Press Backspace twice
        >> Observe only "J" is now displayed
      4. Press 'U' once, as if attempting to complete the field with "Jun"
        >> Observe segmentation fault

      Sample code to reproduce : 

        1 #include <QApplication>
        2 #include <QDateTimeEdit>
        3
        4 int main(int argc, char** argv)
        5 {
        6     QApplication app(argc, argv);
        7
        8     QDateTimeEdit dte(QDateTime::currentDateTime(), nullptr);
        9     dte.setDisplayFormat("MMM");
       10     dte.show();
       11
       12     return app.exec();
       13 }
      
      

      qmake project :

      ######################################################################
      # Automatically generated by qmake (2.01a) Tue Jan 15 10:16:26 2019
      ######################################################################TEMPLATE = app
      TARGET =
      DEPENDPATH += .
      INCLUDEPATH += .# Input
      HEADERS +=
      SOURCES += main.cpp
      CONFIG  += c++11 debug
      QMAKE_CXXFLAGS += -std=c++1
      

      Segmentation fault back trace :

      Program received signal SIGSEGV, Segmentation fault.
      0x00000030e16896d1 in memcpy () from /lib64/libc.so.6
      Missing separate debuginfos, use: debuginfo-install expat-2.0.1-13.el6_8.x86_64 fontconfig-2.8.0-5.el6.x86_64 freetype-2.3.11-17.el6.x86_64 glib2-2.28.8-9.el6.x86_64 glibc-2.12-1.212.el6.x86_64 libICE-1.0.6-1.el6.x86_64 libSM-1.2.1-2.el6.x86_64 libX11-1.6.4-3.el6.x86_64 libXau-1.0.6-4.el6.x86_64 libXcursor-1.1.14-2.1.el6.x86_64 libXext-1.3.3-1.el6.x86_64 libXfixes-devel-5.0.3-1.el6.x86_64 libXi-devel-1.7.8-1.el6.x86_64 libXinerama-1.1.3-2.1.el6.x86_64 libXrandr-1.5.1-1.el6.x86_64 libXrender-0.9.10-1.el6.x86_64 libgcc-4.4.7-18.el6.x86_64 libpng-1.2.49-2.el6_7.x86_64 libstdc++-4.4.7-18.el6.x86_64 libuuid-2.17.2-12.28.el6_9.2.x86_64 libxcb-1.12-4.el6.x86_64 zlib-1.2.3-29.el6.x86_64
      (gdb) bt
      #0  0x00000030e16896d1 in memcpy () from /lib64/libc.so.6
      #1  0x00007ffff6ef1a8c in QString::insert(int, QChar const*, int) () from /usr/local/qt-4.8.7/lib/libQtCore.so.4
      #2  0x00007ffff7914afd in QLineControl::internalInsert(QString const&) () from /usr/local/qt-4.8.7/lib/libQtGui.so.4
      #3  0x00007ffff7915760 in QLineControl::insert(QString const&) () from /usr/local/qt-4.8.7/lib/libQtGui.so.4
      #4  0x00007ffff79171f0 in QLineControl::processKeyEvent(QKeyEvent*) () from /usr/local/qt-4.8.7/lib/libQtGui.so.4
      #5  0x00007ffff790c57a in QLineEdit::keyPressEvent(QKeyEvent*) () from /usr/local/qt-4.8.7/lib/libQtGui.so.4
      #6  0x00007ffff7569564 in QWidget::event(QEvent*) () from /usr/local/qt-4.8.7/lib/libQtGui.so.4
      #7  0x00007ffff79118b1 in QLineEdit::event(QEvent*) () from /usr/local/qt-4.8.7/lib/libQtGui.so.4
      #8  0x00007ffff78ca4b9 in QAbstractSpinBox::keyPressEvent(QKeyEvent*) () from /usr/local/qt-4.8.7/lib/libQtGui.so.4
      #9  0x00007ffff78e7bc7 in QDateTimeEdit::keyPressEvent(QKeyEvent*) () from /usr/local/qt-4.8.7/lib/libQtGui.so.4
      #10 0x00007ffff7569564 in QWidget::event(QEvent*) () from /usr/local/qt-4.8.7/lib/libQtGui.so.4
      #11 0x00007ffff78e795f in QDateTimeEdit::event(QEvent*) () from /usr/local/qt-4.8.7/lib/libQtGui.so.4
      #12 0x00007ffff751703c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/local/qt-4.8.7/lib/libQtGui.so.4
      #13 0x00007ffff751e821 in QApplication::notify(QObject*, QEvent*) () from /usr/local/qt-4.8.7/lib/libQtGui.so.4
      #14 0x00007ffff6fa834d in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/local/qt-4.8.7/lib/libQtCore.so.4
      #15 0x00007ffff75b40c7 in ?? () from /usr/local/qt-4.8.7/lib/libQtGui.so.4
      #16 0x00007ffff75b4448 in ?? () from /usr/local/qt-4.8.7/lib/libQtGui.so.4
      #17 0x00007ffff759087f in QApplication::x11ProcessEvent(_XEvent*) () from /usr/local/qt-4.8.7/lib/libQtGui.so.4
      #18 0x00007ffff75b6bd2 in ?? () from /usr/local/qt-4.8.7/lib/libQtGui.so.4
      #19 0x00000030e2e40552 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
      #20 0x00000030e2e44d08 in ?? () from /lib64/libglib-2.0.so.0
      #21 0x00000030e2e44ec2 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
      #22 0x00007ffff6fd4eb5 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/local/qt-4.8.7/lib/libQtCore.so.4
      #23 0x00007ffff75b6c66 in ?? () from /usr/local/qt-4.8.7/lib/libQtGui.so.4
      #24 0x00007ffff6fa6f0f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/local/qt-4.8.7/lib/libQtCore.so.4
      #25 0x00007ffff6fa7205 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/local/qt-4.8.7/lib/libQtCore.so.4
      #26 0x00007ffff6fac489 in QCoreApplication::exec() () from /usr/local/qt-4.8.7/lib/libQtCore.so.4
      #27 0x0000000000402bf2 in main () at main.cpp:12
      
      

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            qt.team.quick.subscriptions Qt Quick and Widgets Team
            powellss Sean Powell
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes