[libcamera-devel] [PATCH 2/2] libcamera: pipeline: simple: Initialize V4L2DeviceFormat before use

Laurent Pinchart laurent.pinchart at ideasonboard.com
Wed Oct 21 04:47:44 CEST 2020


The V4L2DeviceFormat has no default constructor. Zero it before use when
setting formats. Failure to do so leaves the planes uninitialized,
potentially causing memory corruption.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 src/libcamera/pipeline/simple/converter.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/libcamera/pipeline/simple/converter.cpp b/src/libcamera/pipeline/simple/converter.cpp
index b4ee021f6210..b3705abcd626 100644
--- a/src/libcamera/pipeline/simple/converter.cpp
+++ b/src/libcamera/pipeline/simple/converter.cpp
@@ -72,7 +72,7 @@ std::vector<PixelFormat> SimpleConverter::formats(PixelFormat input)
 	 * Set the format on the input side (V4L2 output) of the converter to
 	 * enumerate the conversion capabilities on its output (V4L2 capture).
 	 */
-	V4L2DeviceFormat format;
+	V4L2DeviceFormat format = {};
 	format.fourcc = m2m_->output()->toV4L2PixelFormat(input);
 	format.size = { 1, 1 };
 
@@ -103,7 +103,7 @@ SizeRange SimpleConverter::sizes(const Size &input)
 	 * Set the size on the input side (V4L2 output) of the converter to
 	 * enumerate the scaling capabilities on its output (V4L2 capture).
 	 */
-	V4L2DeviceFormat format;
+	V4L2DeviceFormat format = {};
 	format.fourcc = V4L2PixelFormat();
 	format.size = input;
 
@@ -142,7 +142,7 @@ SizeRange SimpleConverter::sizes(const Size &input)
 int SimpleConverter::configure(PixelFormat inputFormat, const Size &inputSize,
 			       StreamConfiguration *cfg)
 {
-	V4L2DeviceFormat format;
+	V4L2DeviceFormat format = {};
 	int ret;
 
 	V4L2PixelFormat videoFormat = m2m_->output()->toV4L2PixelFormat(inputFormat);
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list