Fix: consumer: unbalanced RCU read-side lock on error
[lttng-tools.git] / src / common / consumer / consumer-stream.c
index d68077855531d4e1adab9bb3ba27c8391b32b036..ad0f7024d524f4d82d076d3963d086c93e607b89 100644 (file)
@@ -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;
@@ -1317,7 +1318,7 @@ int consumer_stream_flush_buffer(struct lttng_consumer_stream *stream,
                break;
        case LTTNG_CONSUMER32_UST:
        case LTTNG_CONSUMER64_UST:
-               lttng_ustconsumer_flush_buffer(stream, (int) producer_active);
+               ret = lttng_ustconsumer_flush_buffer(stream, (int) producer_active);
                break;
        default:
                ERR("Unknown consumer_data type");
This page took 0.0252 seconds and 5 git commands to generate.