Skip to content

cluster: initialize primary_id to NULL in parse_cluster_nodes#333

Open
benh57 wants to merge 1 commit into
valkey-io:mainfrom
benh57:fix-uninitialized-primary-id
Open

cluster: initialize primary_id to NULL in parse_cluster_nodes#333
benh57 wants to merge 1 commit into
valkey-io:mainfrom
benh57:fix-uninitialized-primary-id

Conversation

@benh57

@benh57 benh57 commented Jul 7, 2026

Copy link
Copy Markdown

We noticed this because we forked libvalkey locally and built in our own env

primary_id is declared uninitialized and only written by parse_cluster_nodes_line() when replicas are parsed (a non-NULL parsed_primary_id is passed, i.e. add_replicas).

It is later read by retain_replica_node() on replica lines. A replica line is only produced when add_replicas is set, so in practice the value is written before it is read, but that correlation is not visible to the compiler, which warns about a possibly-uninitialized read (-Wmaybe-uninitialized / MSVC /W4, fatal under -Werror).

Initialize to NULL to silence the warning and guard against future refactors.

@benh57 benh57 force-pushed the fix-uninitialized-primary-id branch from e5224ee to 3ab444e Compare July 7, 2026 00:09
primary_id is declared uninitialized and only written by
parse_cluster_nodes_line() when replicas are parsed (a non-NULL
parsed_primary_id is passed, i.e. add_replicas). It is later read by
retain_replica_node() on replica lines. A replica line is only produced
when add_replicas is set, so in practice the value is written before it
is read, but that correlation is not visible to the compiler, which warns
about a possibly-uninitialized read (-Wmaybe-uninitialized / MSVC /W4,
fatal under -Werror). Initialize to NULL to silence the warning and guard
against future refactors.

Signed-off-by: Ben Hines <bhines@gmail.com>
@benh57 benh57 force-pushed the fix-uninitialized-primary-id branch from 3ab444e to 94c8bee Compare July 7, 2026 00:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant