pipewire/src/gst
Barnabás Pőcze 2770143f50 gst: pool: fix buffer release race condition
A call to `release_buffer()` may happen in a gstreamer thread concurrently
with the pipewire stream emitting the `remove_buffer` event in the thread
loop, which, in pipewiresink calls `gst_pipewire_pool_remove_buffer()`, which
in turn modifies the `GstPipeWirePoolData` object. Thus a data race occurs
when accessing its members, which can lead to `pw_stream_return_buffer()`
being called with a null pointer.

Fix that by locking the thread loop before checking the conditions.

Fixes: c0a6a7ea32 ("gst: handle flush event in pipewiresink")
2026-02-09 09:25:36 +00:00
..
.editorconfig add .editorconfig files 2019-02-13 11:19:21 +01:00
gstpipewire.c treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
gstpipewireclock.c gst: Use gst_util_uint64_scale instead of scale_int 2025-10-30 16:46:58 +00:00
gstpipewireclock.h gst: use G_DECLARE_FINAL_TYPE for all classes 2024-06-11 12:51:51 +00:00
gstpipewirecore.c gst: core: Fixup connection error handling 2025-01-12 11:42:29 +00:00
gstpipewirecore.h treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
gstpipewiredeviceprovider.c gst: deviceprovider: unregister pw_core event hooks 2025-12-25 14:57:21 +01:00
gstpipewiredeviceprovider.h gst: deviceprovider: Signal default devices 2024-09-11 13:14:26 +00:00
gstpipewireformat.c audio: don't use SPA_AUDIO_MAX_CHANNELS in some places 2025-10-20 18:31:17 +02:00
gstpipewireformat.h gst: Add helper to fixate DMA_DRM caps 2024-05-29 19:05:53 +02:00
gstpipewirepool.c gst: pool: fix buffer release race condition 2026-02-09 09:25:36 +00:00
gstpipewirepool.h gst: pipewiresrc: Expose cursor position as a ROI meta 2025-07-11 11:57:59 -04:00
gstpipewiresink.c gst: fix leak in sink_update_params 2025-07-08 13:07:44 +02:00
gstpipewiresink.h gst: sink: update clock before every trigger process 2025-05-08 18:57:44 +05:30
gstpipewiresrc.c pipewiresrc: Fix video crop metadata not being set 2026-01-21 15:26:57 +00:00
gstpipewiresrc.h pipewiresrc: Fix renegotiation 2025-11-03 15:27:46 +00:00
gstpipewirestream.c gst: add rate control to the sink 2024-12-03 12:11:47 +01:00
gstpipewirestream.h gst: sink: update clock before every trigger process 2025-05-08 18:57:44 +05:30
meson.build gst: add rate control to the sink 2024-12-03 12:11:47 +01:00