Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Schindelin <johannes.schindelin@gmx.de>2023-09-04 09:21:26 +0300
committerJunio C Hamano <gitster@pobox.com>2023-09-06 01:28:26 +0300
commit256a94ef6c8c0c94f9629a1ffe893577ccef8efd (patch)
tree43cf7cad9d7d2c1d27f725eb11b4b819f5a569e7 /t/t0007-git-var.sh
parented773a18c6e92ae4f4e016f4529d6bdfbbbd56d8 (diff)
var: avoid a segmentation fault when `HOME` is unset
The code introduced in 576a37fccbf (var: add attributes files locations, 2023-06-27) paid careful attention to use `xstrdup()` for pointers known never to be `NULL`, and `xstrdup_or_null()` otherwise. One spot was missed, though: `git_attr_global_file()` can return `NULL`, when the `HOME` variable is not set (and neither `XDG_CONFIG_HOME`), a scenario not too uncommon in certain server scenarios. Fix this, and add a test case to avoid future regressions. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Acked-by: brian m. carlson <bk2204@github.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t0007-git-var.sh')
-rwxr-xr-xt/t0007-git-var.sh9
1 files changed, 9 insertions, 0 deletions
diff --git a/t/t0007-git-var.sh b/t/t0007-git-var.sh
index 8cb597f99c..ff4fd9348c 100755
--- a/t/t0007-git-var.sh
+++ b/t/t0007-git-var.sh
@@ -268,4 +268,13 @@ test_expect_success 'listing and asking for variables are exclusive' '
test_must_fail git var -l GIT_COMMITTER_IDENT
'
+test_expect_success '`git var -l` works even without HOME' '
+ (
+ XDG_CONFIG_HOME= &&
+ export XDG_CONFIG_HOME &&
+ unset HOME &&
+ git var -l
+ )
+'
+
test_done