From ab940d8fe9affd2ae1bb9cdf0e3f9d41fa49a662 Mon Sep 17 00:00:00 2001
From: Jesus Fernandez <jesus.fernandez@theqtcompany.com>
Date: Mon, 23 May 2016 17:28:46 +0200
Subject: [PATCH] Resource leak fixed

CameraBinV4LImageProcessing::setParameter was leaking the resource fd
in some cases in the switch using return instead of break.

Change-Id: Ie56eaf4cf1d1b7531094c321f49a818632985628
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
---
 .../gstreamer/camerabin/camerabinv4limageprocessing.cpp      | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/plugins/gstreamer/camerabin/camerabinv4limageprocessing.cpp b/src/plugins/gstreamer/camerabin/camerabinv4limageprocessing.cpp
index bf51cbfd0..913c4548d 100644
--- a/src/plugins/gstreamer/camerabin/camerabinv4limageprocessing.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabinv4limageprocessing.cpp
@@ -194,8 +194,10 @@ void CameraBinV4LImageProcessing::setParameter(
         const QCameraImageProcessing::WhiteBalanceMode m =
                 value.value<QCameraImageProcessing::WhiteBalanceMode>();
         if (m != QCameraImageProcessing::WhiteBalanceAuto
-                && m != QCameraImageProcessing::WhiteBalanceManual)
+                && m != QCameraImageProcessing::WhiteBalanceManual) {
+            qt_safe_close(fd);
             return;
+        }
 
         control.value = (m == QCameraImageProcessing::WhiteBalanceAuto) ? true : false;
     }
@@ -214,6 +216,7 @@ void CameraBinV4LImageProcessing::setParameter(
         break;
 
     default:
+        qt_safe_close(fd);
         return;
     }
 
-- 
GitLab