This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/cgit.cgi/v4l-utils.git tree:

Subject: Fixed qv4l2 crash with drivers that implement VIDIOC_ENUM_FRAMESIZES 
for outputs
Author:  Martin Tůma <martin.t...@digiteqautomotive.com>
Date:    Tue Jan 9 14:12:44 2024 +0100

When a v4l2 driver implements VIDIOC_ENUM_FRAMESIZES for an output, qv4l2
crashes on accessing the "frame size widget" that does not exist. This patch
adds a proper check for the widget not being NULL.

Signed-off-by: Martin Tůma <martin.t...@digiteqautomotive.com>
Signed-off-by: Hans Verkuil <hverkuil-ci...@xs4all.nl>

 utils/qv4l2/general-tab.cpp | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

---

http://git.linuxtv.org/cgit.cgi/v4l-utils.git/commit/?id=8649f5190970ac7bcfc227bcbc210964e693dd1f
diff --git a/utils/qv4l2/general-tab.cpp b/utils/qv4l2/general-tab.cpp
index ffa44ecaf4b9..bceaab09852d 100644
--- a/utils/qv4l2/general-tab.cpp
+++ b/utils/qv4l2/general-tab.cpp
@@ -2165,13 +2165,16 @@ void GeneralTab::updateFrameSize()
 
        ok = !enum_framesizes(frmsize, m_pixelformat);
        if (ok && frmsize.type == V4L2_FRMSIZE_TYPE_DISCRETE) {
-               do {
-                       m_frameSize->addItem(QString("%1x%2")
-                               
.arg(frmsize.discrete.width).arg(frmsize.discrete.height));
-                       if (frmsize.discrete.width == m_width &&
-                           frmsize.discrete.height == m_height)
-                               m_frameSize->setCurrentIndex(frmsize.index);
-               } while (!enum_framesizes(frmsize));
+               if (m_frameSize) {
+                       do {
+                               m_frameSize->addItem(QString("%1x%2")
+                                       .arg(frmsize.discrete.width)
+                                       .arg(frmsize.discrete.height));
+                               if (frmsize.discrete.width == m_width &&
+                                   frmsize.discrete.height == m_height)
+                                       
m_frameSize->setCurrentIndex(frmsize.index);
+                       } while (!enum_framesizes(frmsize));
+               }
 
                m_discreteSizes = true;
                m_frameWidth->setEnabled(false);
@@ -2187,7 +2190,8 @@ void GeneralTab::updateFrameSize()
                m_frameHeight->setMaximum(m_height);
                m_frameHeight->setValue(m_height);
                m_frameHeight->blockSignals(false);
-               m_frameSize->setEnabled(!m_haveBuffers);
+               if (m_frameSize)
+                       m_frameSize->setEnabled(!m_haveBuffers);
                updateFrameInterval();
                return;
        }

_______________________________________________
linuxtv-commits mailing list
linuxtv-commits@linuxtv.org
https://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to