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

Nicolas Dufresne nicolas at ndufresne.ca
Thu Mar 11 21:52:54 CET 2021


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>
---
 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
-- 
2.29.2



More information about the libcamera-devel mailing list