[libcamera-devel] [PATCH 2/2] android: CameraDevice: Validate buffer_handle by CameraBuffer::isValid()

Hirokazu Honda hiroh at chromium.org
Mon Apr 5 06:04:24 CEST 2021


This adds a validation to buffer_handle provided in
CameraDevice::processCaptureRequest() by using
CameraBuffer::isValid().

Signed-off-by: Hirokazu Honda <hiroh at chromium.org>
---
 src/android/camera_device.cpp | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
index 89044efa..0fff5927 100644
--- a/src/android/camera_device.cpp
+++ b/src/android/camera_device.cpp
@@ -257,6 +257,7 @@ void sortCamera3StreamConfigs(std::vector<Camera3StreamConfig> &unsortedConfigs,
 }
 
 bool isValidRequest(camera3_capture_request_t *camera3Request)
+
 {
 	if (!camera3Request) {
 		LOG(HAL, Error) << "No capture request provided";
@@ -293,6 +294,13 @@ bool isValidRequest(camera3_capture_request_t *camera3Request)
 				<< ") in buffer " << i;
 			return false;
 		}
+
+		CameraBuffer cameraBuffer(*outputBuffer.buffer,
+					  PROT_READ | PROT_WRITE, /*map=*/false);
+		if (!cameraBuffer.isValid()) {
+			LOG(HAL, Error) << "cameraBuffer is invalid";
+			return false;
+		}
 	}
 
 	return true;
-- 
2.31.0.208.g409f899ff0-goog



More information about the libcamera-devel mailing list