Fix: use after free on metadata cache reallocation
[lttng-modules.git] / lttng-abi.c
index 5823a1db042d6fa8aa5e88bef4a35235bf5eea4e..6993a46fb740039d22a647d1b13fef567b70dbc6 100644 (file)
@@ -565,9 +565,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;
@@ -865,7 +867,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.023398 seconds and 4 git commands to generate.