summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUtkarsh Tiwari <utkarsh02t@gmail.com>2022-09-07 22:05:04 +0530
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-09-08 11:20:53 +0300
commit5a9fd9a95cce4ab17c9cf5d9e0c33a008255bedb (patch)
tree51447c2c556a544574cd2767b894a5a4386f0375
parent6225d647b47982833fa654bf9cf65eb8c04d2036 (diff)
qcam: Fix crash when switching from non existant camera
When switching to different camera we try to release the camera previously used. But if that camera has been unplugged, then its instance would have been destroyed. Accessing it leads to seg fault. Fix by checking camera_ to see if it exists. Bug: https://bugs.libcamera.org/show_bug.cgi?id=147 Signed-off-by: Utkarsh Tiwari <utkarsh02t@gmail.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Tested-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-rw-r--r--src/qcam/main_window.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/qcam/main_window.cpp b/src/qcam/main_window.cpp
index 6fe36168..e0e5092e 100644
--- a/src/qcam/main_window.cpp
+++ b/src/qcam/main_window.cpp
@@ -284,7 +284,9 @@ void MainWindow::switchCamera()
*/
startStopAction_->setChecked(false);
- camera_->release();
+ if (camera_)
+ camera_->release();
+
camera_ = cam;
startStopAction_->setChecked(true);