From 8c1123358c7a45dcbc1f83eef74354efa35dfaaa Mon Sep 17 00:00:00 2001 From: zuozhiwei Date: Mon, 22 Jun 2026 09:43:45 +0800 Subject: [PATCH] module-rtp: release data_loop on rtp_stream_new error path rtp_stream_new() acquires a data loop with pw_context_acquire_loop() but the out: error path never calls pw_context_release_loop(), leaking the loop reference on every failure after acquisition. Mirror rtp_stream_destroy() and other modules that pair acquire with release. --- src/modules/module-rtp/stream.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/modules/module-rtp/stream.c b/src/modules/module-rtp/stream.c index 11bba4f98..fb549a0df 100644 --- a/src/modules/module-rtp/stream.c +++ b/src/modules/module-rtp/stream.c @@ -1014,6 +1014,13 @@ struct rtp_stream *rtp_stream_new(struct pw_core *core, return (struct rtp_stream*)impl; out: pw_properties_free(props); + if (impl) { + if (impl->stream) + pw_stream_destroy(impl->stream); + if (impl->data_loop) + pw_context_release_loop(impl->context, impl->data_loop); + free(impl); + } errno = -res; return NULL; }