[libcamera-devel] [PATCH v2 4/4] libcamera: camera: Return -EINVAL if any stream is null while configure()

Kieran Bingham kieran.bingham at ideasonboard.com
Tue Jun 2 11:36:28 CEST 2020


Hi Umang,

On 15/05/2020 13:42, Umang Jain wrote:
> Fail and return the Camera::configure() operation if any
> of the stream turns out to be a nullptr even after the
> PipelineHandler handler seems to have configured the config
> successfully. This prevents a null-dereference below in the
> loop.
> 
> Pointed out by Coverity DefectId=279069

We've set a style for reporting tags as:

Reported-by: Coverity CID=279069

I've updated the tags in this branch when applying to my local tree, so
no need for you to repost, just an FYI.

We should probably create a checkstyle rule for it...

Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>


> Signed-off-by: Umang Jain <email at uajain.com>
> ---
>  src/libcamera/camera.cpp | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp
> index 8c3bb2c..9d2607b 100644
> --- a/src/libcamera/camera.cpp
> +++ b/src/libcamera/camera.cpp
> @@ -777,9 +777,12 @@ int Camera::configure(CameraConfiguration *config)
>  	p_->activeStreams_.clear();
>  	for (const StreamConfiguration &cfg : *config) {
>  		Stream *stream = cfg.stream();
> -		if (!stream)
> +		if (!stream) {
>  			LOG(Camera, Fatal)
>  				<< "Pipeline handler failed to update stream configuration";
> +			p_->activeStreams_.clear();
> +			return -EINVAL;
> +		}
>  
>  		stream->configuration_ = cfg;
>  		p_->activeStreams_.insert(stream);
> 

-- 
Regards
--
Kieran


More information about the libcamera-devel mailing list