[PATCH v1] pipeline: rpi: Fix potential empty optional read

Kieran Bingham kieran.bingham at ideasonboard.com
Tue Apr 1 14:56:20 CEST 2025


Hi Naush,

A relatively small patch for RPi here, LGTM, but are you happy with
this as a fix?

Quoting Laurent Pinchart (2025-03-26 02:00:19)
> Hi Barnabás,
> 
> Thank you for the patch.
> 
> On Tue, Mar 25, 2025 at 03:07:45PM +0100, Barnabás Pőcze wrote:
> > If `!target`, then `*target` is undefined behaviour, so check if the optional
> > is empty when printing the error message. Simplify the check as well.
> > 

Any fixes tag suitable? (would make this list in the fixes log of the
libcamera release)

--
Kieran


> > Signed-off-by: Barnabás Pőcze <barnabas.pocze at ideasonboard.com>
> 
> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> 
> > ---
> >  src/libcamera/pipeline/rpi/vc4/vc4.cpp | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/src/libcamera/pipeline/rpi/vc4/vc4.cpp b/src/libcamera/pipeline/rpi/vc4/vc4.cpp
> > index fd8d84b14..fe910bdf2 100644
> > --- a/src/libcamera/pipeline/rpi/vc4/vc4.cpp
> > +++ b/src/libcamera/pipeline/rpi/vc4/vc4.cpp
> > @@ -510,9 +510,9 @@ int Vc4CameraData::platformPipelineConfigure(const std::unique_ptr<YamlObject> &
> >       }
> > 
> >       std::optional<std::string> target = (*root)["target"].get<std::string>();
> > -     if (!target || *target != "bcm2835") {
> > +     if (target != "bcm2835") {
> >               LOG(RPI, Error) << "Unexpected target reported: expected \"bcm2835\", got "
> > -                             << *target;
> > +                             << (target ? target->c_str() : "(unknown)");
> >               return -EINVAL;
> >       }
> > 
> 
> -- 
> Regards,
> 
> Laurent Pinchart


More information about the libcamera-devel mailing list