[libcamera-devel] libcamera: pipeline: simple: Check if converter_ is a nullptr
Umang Jain
umang.jain at ideasonboard.com
Fri Feb 24 07:22:35 CET 2023
Hi Suhrid,
Thank you for the patch.
On 2/24/23 2:17 AM, Suhrid Subramaniam via libcamera-devel wrote:
> - If no converter is found, converter_ becomes a nullptr and
> !converter_->isValid() causes a segmentation fault.
> - Avoid this by checking if converter_ is a nullptr.
>
> Signed-off-by: Suhrid Subramaniam <suhrid.subramaniam at mediatek.com>
> ---
> src/libcamera/pipeline/simple/simple.cpp | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
> index 24ded4db..2423ec10 100644
> --- a/src/libcamera/pipeline/simple/simple.cpp
> +++ b/src/libcamera/pipeline/simple/simple.cpp
> @@ -493,7 +493,7 @@ int SimpleCameraData::init()
> MediaDevice *converter = pipe->converter();
> if (converter) {
> converter_ = ConverterFactoryBase::create(converter);
> - if (!converter_->isValid()) {
> + if (!converter_) {
it seems this change will drop the validity check so maybe :
if (!converter_ && converter_->isValid()) {
The error message below might be need to get tweaked a bit.
On the other hand, I wonder if ConverterFactoryBase::create() should be
allowed? to return a non-valid converter pointer or not.
> LOG(SimplePipeline, Warning)
> << "Failed to create converter, disabling format conversion";
> converter_.reset();
More information about the libcamera-devel
mailing list