From bb3cce3f74f29c371a9a835f9569a0a16a9b43f8 Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Thu, 27 May 2021 16:45:55 -0400 Subject: [PATCH] Fix: consumer: unbalanced RCU read-side lock on error MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Mathieu Desnoyers Signed-off-by: Jérémie Galarneau Change-Id: I22ddc8585af84d07e8f3d19e9df582599352a1b8 --- src/common/consumer/consumer-stream.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/common/consumer/consumer-stream.c b/src/common/consumer/consumer-stream.c index 37b2d5050..ad0f7024d 100644 --- a/src/common/consumer/consumer-stream.c +++ b/src/common/consumer/consumer-stream.c @@ -629,13 +629,14 @@ struct lttng_consumer_stream *consumer_stream_create( goto end; } + rcu_read_lock(); + if (trace_chunk && !lttng_trace_chunk_get(trace_chunk)) { ERR("Failed to acquire trace chunk reference during the creation of a stream"); ret = -1; goto error; } - rcu_read_lock(); stream->chan = channel; stream->key = stream_key; stream->trace_chunk = trace_chunk; -- 2.34.1