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

Jacopo Mondi jacopo at jmondi.org
Tue Apr 6 14:51:22 CEST 2021


Hi Hiro,

On Mon, Apr 05, 2021 at 01:04:24PM +0900, Hirokazu Honda wrote:
> 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)
> +

Ups

>  {
>  	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;
> +		}

See comment in 1/2. I think a static function would be better. Does a
static function works well with d-pointer ?

>  	}
>
>  	return true;
> --
> 2.31.0.208.g409f899ff0-goog
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel


More information about the libcamera-devel mailing list