[libcamera-devel] [PATCH 1/2] gst: provider: Fix crash in finalize

Nicolas Dufresne nicolas.dufresne at collabora.com
Fri Mar 12 17:44:11 CET 2021


Le vendredi 12 mars 2021 à 00:39 +0200, Laurent Pinchart a écrit :
> Hi Nicolas,
> 
> Thank you for the patch.
> 
> On Thu, Mar 11, 2021 at 03:52:54PM -0500, Nicolas Dufresne wrote:
> > From: Nicolas Dufresne <nicolas.dufresne at collabora.com>
> > 
> > Both the DeviceProvider and Device classes had the same mistake,
> > calling G_OBJECT_GET_CLASS() instead of G_OBJECT_CLASS() when
> > chaining their finalize call to their base class. This would
> > crash at destruction, which was causing gst-device-monitor-1.0
> > tool to crash and application using that API to crash too.
> > 
> > Signed-off-by: Nicolas Dufresne <nicolas.dufresne at collabora.com>
> 
> This looks good to me,
> 
> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> 
> A bit annoying that gobject can't catch this type of issue at compile
> time :-S

Indeed, and it didn't at runtime either, looks like a gap in the runtime checks.
Compile time of course would require compiler support.

> 
> > ---
> >  src/gstreamer/gstlibcameraprovider.cpp | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/src/gstreamer/gstlibcameraprovider.cpp
> > b/src/gstreamer/gstlibcameraprovider.cpp
> > index ee44dc73..29da6c32 100644
> > --- a/src/gstreamer/gstlibcameraprovider.cpp
> > +++ b/src/gstreamer/gstlibcameraprovider.cpp
> > @@ -101,7 +101,7 @@ gst_libcamera_device_finalize(GObject *object)
> >  
> >         g_free(self->name);
> >  
> > -       G_OBJECT_GET_CLASS(klass)->finalize(object);
> > +       G_OBJECT_CLASS(klass)->finalize(object);
> >  }
> >  
> >  static void
> > @@ -218,7 +218,7 @@ gst_libcamera_provider_finalize(GObject *object)
> >  
> >         delete self->cm;
> >  
> > -       return G_OBJECT_GET_CLASS(klass)->finalize(object);
> > +       return G_OBJECT_CLASS(klass)->finalize(object);
> >  }
> >  
> >  static void
> 




More information about the libcamera-devel mailing list