trace2: prevent segfault on config collection with valueless true

When TRACE2 analytics is enabled, a configuration variable set to
"valueless true" causes a segfault.

Steps to Reproduce

    GIT_TRACE2=true GIT_TRACE2_CONFIG_PARAMS=status.*
    git -c status.relativePaths version
    Expected Result
    git version 2.46.0
    Actual Result
    zsh: segmentation fault GIT_TRACE2=true

Add checks to prevent the segfault and instead show that the
variable without value.

Signed-off-by: Adam Murray <ad@canva.com>
Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Adam Murray
2025-01-10 07:28:20 +00:00
committed by Junio C Hamano
parent 5c21db3a0d
commit 2fd367cf63
5 changed files with 18 additions and 6 deletions

View File

@@ -762,7 +762,7 @@ void trace2_def_param_fl(const char *file, int line, const char *param,
if (!trace2_enabled)
return;
redacted = redact_arg(value);
redacted = value ? redact_arg(value) : NULL;
for_each_wanted_builtin (j, tgt_j)
if (tgt_j->pfn_param_fl)