From 2fd367cf63cd5f94368340cc6fe1cd0a3fb021df Mon Sep 17 00:00:00 2001 From: Adam Murray Date: Fri, 10 Jan 2025 07:28:20 +0000 Subject: 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 Acked-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- t/t0210-trace2-normal.sh | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 't') diff --git a/t/t0210-trace2-normal.sh b/t/t0210-trace2-normal.sh index c312657a12..07b6608951 100755 --- a/t/t0210-trace2-normal.sh +++ b/t/t0210-trace2-normal.sh @@ -244,6 +244,15 @@ test_expect_success 'bug messages followed by BUG() are written to trace2' ' test_cmp expect actual ' +test_expect_success 'a valueless true configuration variable is handled' ' + test_when_finished "rm -f trace2.normal actual expect" && + echo >expect && + GIT_TRACE2="$(pwd)/trace2.normal" \ + GIT_TRACE2_CONFIG_PARAMS=foo.true \ + git -c foo.true config foo.true >actual && + test_cmp expect actual +' + sane_unset GIT_TRACE2_BRIEF # Now test without environment variables and get all Trace2 settings -- cgit v1.3