Fix: use after free on metadata cache reallocation
[lttng-modules.git] / lttng-abi.c
index 93cdce3e0f00ec37e007ae17a54bce290ee035df..8f63ad94c8fb053d9178aa91aa71d14d317f4e1b 100644 (file)
@@ -622,9 +622,11 @@ unsigned int lttng_metadata_ring_buffer_poll(struct file *filp,
                if (finalized)
                        mask |= POLLHUP;
 
+               mutex_lock(&stream->metadata_cache->lock);
                if (stream->metadata_cache->metadata_written >
                                stream->metadata_out)
                        mask |= POLLIN;
+               mutex_unlock(&stream->metadata_cache->lock);
        }
 
        return mask;
@@ -922,7 +924,6 @@ int lttng_abi_open_metadata_stream(struct file *channel_file)
        metadata_stream->priv = buf;
        stream_priv = metadata_stream;
        metadata_stream->transport = channel->transport;
-       mutex_init(&metadata_stream->lock);
 
        /*
         * Since life-time of metadata cache differs from that of
This page took 0.023912 seconds and 4 git commands to generate.