[libcamera-devel] [PATCH 1/2] gst: provider: Fix crash in finalize
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Thu Mar 11 23:39:57 CET 2021
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
> ---
> 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
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list