Version bump
This commit is contained in:
		@@ -0,0 +1,34 @@
 | 
			
		||||
https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/140374d2071e6204fded4ca65645d4e9a3dd053e
 | 
			
		||||
https://bugs.webkit.org/show_bug.cgi?id=259735
 | 
			
		||||
 | 
			
		||||
From 140374d2071e6204fded4ca65645d4e9a3dd053e Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Philippe Normand <philn@igalia.com>
 | 
			
		||||
Date: Fri, 4 Aug 2023 10:01:07 +0100
 | 
			
		||||
Subject: [PATCH] gst: Prevent a crash when stopping device provider
 | 
			
		||||
 | 
			
		||||
The provider might fail to connect to the PipeWire core when starting up, so
 | 
			
		||||
when stopping we need to check the core is valid before attempting to acquire a
 | 
			
		||||
mutex on its loop.
 | 
			
		||||
--- a/src/gst/gstpipewiredeviceprovider.c
 | 
			
		||||
+++ b/src/gst/gstpipewiredeviceprovider.c
 | 
			
		||||
@@ -665,11 +665,16 @@ gst_pipewire_device_provider_stop (GstDeviceProvider * provider)
 | 
			
		||||
 {
 | 
			
		||||
   GstPipeWireDeviceProvider *self = GST_PIPEWIRE_DEVICE_PROVIDER (provider);
 | 
			
		||||
 
 | 
			
		||||
-  pw_thread_loop_lock (self->core->loop);
 | 
			
		||||
+  /* core might be NULL if we failed to connect in _start. */
 | 
			
		||||
+  if (self->core != NULL) {
 | 
			
		||||
+    pw_thread_loop_lock (self->core->loop);
 | 
			
		||||
+  }
 | 
			
		||||
   GST_DEBUG_OBJECT (self, "stopping provider");
 | 
			
		||||
 
 | 
			
		||||
   g_clear_pointer ((struct pw_proxy**)&self->registry, pw_proxy_destroy);
 | 
			
		||||
-  pw_thread_loop_unlock (self->core->loop);
 | 
			
		||||
+  if (self->core != NULL) {
 | 
			
		||||
+    pw_thread_loop_unlock (self->core->loop);
 | 
			
		||||
+  }
 | 
			
		||||
   g_clear_pointer (&self->core, gst_pipewire_core_release);
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
-- 
 | 
			
		||||
GitLab
 | 
			
		||||
		Reference in New Issue
	
	Block a user