diff options
author | Jeff King <peff@peff.net> | 2012-07-24 07:53:57 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-07-24 08:59:07 -0700 |
commit | f0c1c15c41bdcdaf71c69355ac83789466820879 (patch) | |
tree | 261e34e95f83564ce0afcc737e9d9134c642289a /attr.c | |
parent | 5adf84ebb375eeee998edef9a2b5aaa05df677d0 (diff) | |
download | git-f0c1c15c41bdcdaf71c69355ac83789466820879.tar.gz git-f0c1c15c41bdcdaf71c69355ac83789466820879.tar.xz |
attr: make sure we have an xdg path before using it
If we don't have a core.attributesfile configured, we fall
back to checking XDG config, which is usually
$HOME/.config/git/attributes.
However, if $HOME is unset, then home_config_paths will return
NULL, and we end up calling fopen(NULL).
Depending on your system, this may or may not cause the
accompanying test to fail (e.g., on Linux and glibc, the
address will go straight to open, which will return EFAULT).
However, valgrind will reliably notice the error.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'attr.c')
-rw-r--r-- | attr.c | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -520,11 +520,13 @@ static void bootstrap_attr_stack(void) home_config_paths(NULL, &xdg_attributes_file, "attributes"); git_attributes_file = xdg_attributes_file; } - elem = read_attr_from_file(git_attributes_file, 1); - if (elem) { - elem->origin = NULL; - elem->prev = attr_stack; - attr_stack = elem; + if (git_attributes_file) { + elem = read_attr_from_file(git_attributes_file, 1); + if (elem) { + elem->origin = NULL; + elem->prev = attr_stack; + attr_stack = elem; + } } if (!is_bare_repository() || direction == GIT_ATTR_INDEX) { |