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

Segfault when dropping elements from Spotify in Firefox

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P1: Critical
    • 6.7.2, 6.8.0 FF
    • 6.6.2, 6.7.0 RC2
    • WebEngine
    • None
    • Linux/X11
    • fa8ff1bb9 (dev), 98da1fba2 (6.6), 940788a68 (6.7)

    Description

      When opening https://open.spotify.com in Firefox, and dragging any element into simplebrowser (e.g. an album picture from "spotify playlists"), it crashes in:

      Thread 1 "simplebrowser" received signal SIGSEGV, Segmentation fault.
      QUrl::isValid (this=0x0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/io/qurl.cpp:1876
      Downloading source file /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/io/qurl.cpp
      1876	   if (isEmpty()) {                                                                                                                                                                                                                  
      (gdb) bt
      #0  QUrl::isValid (this=0x0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/io/qurl.cpp:1876
      #1  0x00007fffec128021 in QUrl::toString (this=0x0, options=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/io/qurl.cpp:2831
      #2  0x00007fffec128394 in QUrl::toEncoded (this=<optimized out>, options=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/io/qurl.cpp:2967
      #3  0x00007fffedfcb402 in QtWebEngineCore::toGurl () at /usr/src/debug/qt6-webengine/qtwebengine-everywhere-src-6.6.2/src/core/type_conversion.h:99
      #4  0x00007fffedfd0916 in fillDropDataFromMimeData () at /usr/src/debug/qt6-webengine/qtwebengine-everywhere-src-6.6.2/src/core/web_contents_adapter.cpp:1631
      #5  0x00007fffedfd149f in QtWebEngineCore::WebContentsAdapter::enterDrag () at /usr/src/debug/qt6-webengine/qtwebengine-everywhere-src-6.6.2/src/core/web_contents_adapter.cpp:1689
      #6  0x00007ffff7facd35 in QWebEngineView::dragEnterEvent (this=0x555555b33430, e=0x7fffffffbcc0) at /usr/src/debug/qt6-webengine/qtwebengine-everywhere-src-6.6.2/src/webenginewidgets/api/qwebengineview.cpp:1281
      #7  0x00007ffff7944e07 in QWidget::event (this=0x555555b33430, event=0x7fffffffbcc0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/widgets/kernel/qwidget.cpp:9170
      #8  0x00007ffff78f438b in QApplicationPrivate::notify_helper (this=this@entry=0x5555555c9930, receiver=receiver@entry=0x555555b33430, e=e@entry=0x7fffffffbcc0)
          at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/widgets/kernel/qapplication.cpp:3296
      #9  0x00007ffff78f6f7a in QApplication::notify (this=0x7fffffffc6f0, receiver=0x555555b151b0, e=0x7fffffffbcc0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/widgets/kernel/qapplication.cpp:3023
      #10 0x00007fffec139818 in QCoreApplication::notifyInternal2 (receiver=0x555555b151b0, event=0x7fffffffbcc0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qcoreapplication.cpp:1121
      #11 0x00007fffec13984a in QCoreApplication::forwardEvent (receiver=<optimized out>, event=<optimized out>, originatingEvent=<optimized out>)
          at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qcoreapplication.cpp:1136
      #12 0x00007ffff79589ef in QWidgetWindow::handleDragEnterEvent (this=0x555555b0ae70, event=event@entry=0x7fffffffbfb0, widget=<optimized out>, widget@entry=0x0)
          at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/widgets/kernel/qwidgetwindow.cpp:930
      #13 0x00007ffff795972c in QWidgetWindow::event (this=0x555555b0ae70, event=0x7fffffffbfb0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/widgets/kernel/qwidgetwindow.cpp:300
      #14 0x00007ffff78f438b in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x555555b0ae70, e=0x7fffffffbfb0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/widgets/kernel/qapplication.cpp:3296
      #15 0x00007fffec139818 in QCoreApplication::notifyInternal2 (receiver=0x555555b0ae70, event=0x7fffffffbfb0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qcoreapplication.cpp:1121
      #16 0x00007fffec13985d in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qcoreapplication.cpp:1539
      #17 0x00007fffecd7862a in QGuiApplicationPrivate::processDrag (w=0x555555b0ae70, dropData=<optimized out>, p=..., supportedActions=..., buttons=..., modifiers=...)
          at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/gui/kernel/qguiapplication.cpp:3369
      #18 0x00007fffecddeed1 in QWindowSystemInterface::handleDrag (window=0x555555b0ae70, dropData=dropData@entry=0x7fffc8006dc0, p=..., supportedActions=supportedActions@entry=..., buttons=buttons@entry=..., modifiers=...)
          at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/gui/kernel/qwindowsysteminterface.cpp:845
      #19 0x00007fffd7a30c4d in QXcbDrag::handle_xdnd_position (this=0x5555555eee40, w=0x555555b0f7a0, e=<optimized out>, b=..., mods=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/plugins/platforms/xcb/qxcbdrag.cpp:771
      #20 0x00007fffd7a28ded in QXcbDrag::handlePosition (event=0x5555561ca160, w=0x555555b0f7a0, this=0x5555555eee40) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/plugins/platforms/xcb/qxcbdrag.cpp:845
      #21 QXcbWindow::handleClientMessageEvent (this=0x555555b0f780, event=0x5555561ca160) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/plugins/platforms/xcb/qxcbwindow.cpp:1763
      #22 0x00007fffd79e7adb in QXcbConnection::handleXcbEvent (this=<optimized out>, event=0x5555561ca160) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/plugins/platforms/xcb/qxcbconnection.cpp:612
      #23 0x00007fffd79ef76c in QXcbConnection::processXcbEvents (this=0x5555555f4bc0, flags=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/plugins/platforms/xcb/qxcbconnection.cpp:1087
      #24 0x00007fffd7a04bd7 in xcbSourceDispatch (source=<optimized out>) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:55
      #25 0x00007fffeb153199 in g_main_dispatch (context=0x7fffd0000f00) at ../glib/glib/gmain.c:3344
      #26 0x00007fffeb1b23bf in g_main_context_dispatch_unlocked (context=0x7fffd0000f00) at ../glib/glib/gmain.c:4152
      #27 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7fffd0000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4217
      #28 0x00007fffeb152712 in g_main_context_iteration (context=0x7fffd0000f00, may_block=1) at ../glib/glib/gmain.c:4282
      #29 0x00007fffec3739c4 in QEventDispatcherGlib::processEvents (this=0x555555634cd0, flags=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qeventdispatcher_glib.cpp:393
      #30 0x00007fffec143d6e in QEventLoop::processEvents (flags=..., this=0x7fffffffc690) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qeventloop.cpp:100
      #31 QEventLoop::exec (this=0x7fffffffc690, flags=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qeventloop.cpp:182
      #32 0x00007fffec13c2b8 in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/global/qflags.h:74
      #33 0x0000555555565f2d in main ()
      

      with a debug build quitting a bit earlier:

      ASSERT: "!isEmpty()" in file /home/florian/proj/qt/dev6/qt5/qtbase/src/corelib/tools/qlist.h, line 632
      Received signal 6
      #0 0x79c407297103 base::debug::CollectStackTrace()
      #1 0x79c407261734 base::debug::StackTrace::StackTrace()
      #2 0x79c4072616ea base::debug::StackTrace::StackTrace()
      #3 0x79c407295c15 base::debug::(anonymous namespace)::StackDumpSignalHandler()
      #4 0x79c3ebc5a770 (/usr/lib/libc.so.6+0x3c76f)
      #5 0x79c3ebcab32c (/usr/lib/libc.so.6+0x8d32b)
      #6 0x79c3ebc5a6c8 gsignal
      #7 0x79c3ebc424b8 abort
      #8 0x79c3ec662b9e qAbort()
      #9 0x79c3ec672588 qt_message_fatal<>()
      #10 0x79c3ec66caf8 qt_message()
      #11 0x79c3ec66e170 QMessageLogger::fatal()
      #12 0x79c3ec6612ab qt_assert()
      #13 0x79c3fb0c4c51 QList<>::first()
      #14 0x79c3fb0be7df QtWebEngineCore::fillDropDataFromMimeData()
      #15 0x79c3fb0bed59 QtWebEngineCore::WebContentsAdapter::enterDrag()
      #16 0x79c410b6902e QWebEngineView::dragEnterEvent()
      #17 0x79c410365058 QWidget::event()
      #18 0x79c410b68e0a QWebEngineView::event()
      #19 0x79c4102d2b74 QApplicationPrivate::notify_helper()
      #20 0x79c4102d1af5 QApplication::notify()
      #21 0x79c3ec72f3dd QCoreApplication::notifyInternal2()
      #22 0x79c3ec72f47c QCoreApplication::forwardEvent()
      #23 0x79c41039a21a QWidgetWindow::handleDragEnterEvent()
      #24 0x79c41039a64c QWidgetWindow::handleDragMoveEvent()
      #25 0x79c4103971ac QWidgetWindow::event()
      #26 0x79c4102d2b74 QApplicationPrivate::notify_helper()
      #27 0x79c4102d296a QApplication::notify()
      #28 0x79c3ec72f3dd QCoreApplication::notifyInternal2()
      #29 0x79c3ec72ffbb QCoreApplication::sendEvent()
      #30 0x79c3ee3a1f5b QGuiApplicationPrivate::processDrag()
      #31 0x79c3ee4582a4 QWindowSystemInterface::handleDrag()
      #32 0x79c3e75ce344 QXcbDrag::handle_xdnd_position()
      #33 0x79c3e75ce87e QXcbDrag::handlePosition()
      #34 0x79c3e75b6753 QXcbWindow::handleClientMessageEvent()
      #35 0x79c3e7536a13 QXcbConnection::handleXcbEvent()
      #36 0x79c3e75386e0 QXcbConnection::processXcbEvents()
      #37 0x79c3e7576ed8 xcbSourceDispatch()
      #38 0x79c3e852d199 (/usr/lib/libglib-2.0.so.0.8000.0+0x5a198)
      #39 0x79c3e858c3bf (/usr/lib/libglib-2.0.so.0.8000.0+0xb93be)
      #40 0x79c3e852c712 g_main_context_iteration
      #41 0x79c3ecb86444 QEventDispatcherGlib::processEvents()
      #42 0x79c3e757712c QXcbGlibEventDispatcher::processEvents()
      #43 0x79c3ec745b63 QEventLoop::processEvents()
      #44 0x79c3ec745ece QEventLoop::exec()
      #45 0x79c3ec72fd80 QCoreApplication::exec()
      #46 0x79c3ee39bd42 QGuiApplication::exec()
      #47 0x79c4102cfb2b QApplication::exec()
      #48 0x650438715392 main
      #49 0x79c3ebc43cd0 (/usr/lib/libc.so.6+0x25ccf)
      #50 0x79c3ebc43d8a __libc_start_main
      #51 0x6504386f8775 _start
        r8: 000065043a2a2010  r9: 0000000000000007 r10: 0000000000000008 r11: 0000000000000246
       r12: 000065043a98b050 r13: 0000000000000006 r14: 0000000000000001 r15: 000065043aad6ff0
        di: 000000000003f29c  si: 000000000003f29c  bp: 000079c3e7a81380  bx: 000000000003f29c
        dx: 0000000000000006  ax: 0000000000000000  cx: 000079c3ebcab32c  sp: 00007ffe718dda30
        ip: 000079c3ebcab32c efl: 0000000000000246 cgf: 002b000000000033 erf: 0000000000000000
       trp: 0000000000000000 msk: 0000000000000000 cr2: 0000000000000000
      [end of stack trace]
      [1]    258716 IOT instruction (core dumped)  ./simplebrowser
      

      The qtbase/examples/widgets/draganddrop/dropsite example shows an empty text/url-list:

      Attachments

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

        Activity

          People

            moheim Moss Heim
            the compiler Florian Bruhin
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes