[vlc-commits] [Git][videolan/vlc][master] 2 commits: qt: fix use after free in `CompositorDummy`

Jean-Baptiste Kempf (@jbk) gitlab at videolan.org
Tue Jun 9 12:03:14 UTC 2026



Jean-Baptiste Kempf pushed to branch master at VideoLAN / VLC


Commits:
26764854 by Fatih Uzunoglu at 2026-06-09T09:17:46+00:00
qt: fix use after free in `CompositorDummy`

This was missed in d12cc266.

- - - - -
e8f4a3d3 by Fatih Uzunoglu at 2026-06-09T09:17:46+00:00
qt: gracefully handle root item creation failure in `CompositorVideo::commonGUICreate()`

- - - - -


2 changed files:

- modules/gui/qt/maininterface/compositor.cpp
- modules/gui/qt/maininterface/compositor_dummy.cpp


Changes:

=====================================
modules/gui/qt/maininterface/compositor.cpp
=====================================
@@ -381,7 +381,10 @@ bool CompositorVideo::commonGUICreate(QWindow* window, QmlUISurface* qmlSurface,
     ret = m_ui->setup(qmlSurface->engine());
     if (! ret)
         return false;
-    qmlSurface->setContent(m_ui->createRootItem());
+    const auto rootItem = m_ui->createRootItem();
+    if (Q_UNLIKELY(!rootItem))
+        return false;
+    qmlSurface->setContent(rootItem);
     return true;
 }
 
@@ -393,7 +396,10 @@ bool CompositorVideo::commonGUICreate(QWindow* window, QQuickView* qmlView, Comp
     ret = m_ui->setup(qmlView->engine());
     if (! ret)
         return false;
-    qmlView->setContent(QUrl(), nullptr, m_ui->createRootItem());
+    const auto rootItem = m_ui->createRootItem();
+    if (Q_UNLIKELY(!rootItem))
+        return false;
+    qmlView->setContent(QUrl(), nullptr, rootItem);
     return true;
 }
 


=====================================
modules/gui/qt/maininterface/compositor_dummy.cpp
=====================================
@@ -63,10 +63,10 @@ bool CompositorDummy::makeMainInterface(MainCtx* mainCtx, std::function<void (QQ
     if (!ui->setup(m_qmlWidget->engine()))
         return false;
 
-    m_qmlWidget->setContent(QUrl(), ui->getComponent(), ui->createRootItem());
-
-    if (m_qmlWidget->status() != QQuickView::Ready)
+    const auto rootItem = ui->createRootItem();
+    if (!rootItem)
         return false;
+    m_qmlWidget->setContent(QUrl(), nullptr, rootItem);
 
     if (aboutToShowQuickWindowCallback)
         aboutToShowQuickWindowCallback(m_qmlWidget.get());



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/ada7d1c032fac94821b6a605f2c2191f8c68b379...e8f4a3d3ac7e94b95762e0bbc8b7010c06ad1d2b

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/ada7d1c032fac94821b6a605f2c2191f8c68b379...e8f4a3d3ac7e94b95762e0bbc8b7010c06ad1d2b
You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help




More information about the vlc-commits mailing list