libcamera: camera: Return -EINVAL if any stream is null while configure()

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.

Reported-by: Coverity CID=279069
Signed-off-by: Umang Jain <email@uajain.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Umang Jain
2020-05-15 12:42:54 +00:00
committed by Kieran Bingham
parent 3706b716eb
commit a69a8ffb02

View File

@@ -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);