diff --git a/src/plugins/gstreamer/camerabin/camerabinv4limageprocessing.cpp b/src/plugins/gstreamer/camerabin/camerabinv4limageprocessing.cpp
index bf51cbfd0f2a703f4ce0c1c084a89d16fbdb7ad3..913c4548d2c01f74c56f6af3f1dec9023f2b27d5 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;
     }