Fix: relayd: incorrect use of lfht add_unique API
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 19 Jul 2024 20:38:29 +0000 (20:38 +0000)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Tue, 30 Jul 2024 01:26:50 +0000 (01:26 +0000)
cds_lfht_add_unique is misused in relay_index_add_unique. The address
of the node is used instead of the address of the key for both the
key parameter and to compute the hash of the index entry's key.

This caused problems in an upcoming change that changes the layout
of the lttng_ht node since the key is no longer the first member
of the node.

Change-Id: Iec67f78b8ced4f4e520dc0dbebda8d30e283aa38
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/bin/lttng-relayd/index.cpp

index e47f647f16b0249210f937c257f649512fbf616e..87ed2d5d25af023e80b01ccfce53bc93cefdb1a5 100644 (file)
@@ -75,9 +75,9 @@ static struct relay_index *relay_index_add_unique(struct relay_stream *stream,
             index->index_n.key);
 
        node_ptr = cds_lfht_add_unique(stream->indexes_ht->ht,
-                                      stream->indexes_ht->hash_fct(&index->index_n, lttng_ht_seed),
+                                      stream->indexes_ht->hash_fct(&index->index_n.key, lttng_ht_seed),
                                       stream->indexes_ht->match_fct,
-                                      &index->index_n,
+                                      &index->index_n.key,
                                       &index->index_n.node);
        if (node_ptr != &index->index_n.node) {
                _index = caa_container_of(node_ptr, struct relay_index, index_n.node);
This page took 0.033563 seconds and 4 git commands to generate.