aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2012-07-22 12:56:27 -0700
committerJunio C Hamano <gitster@pobox.com>2012-07-22 12:56:27 -0700
commita3ad9a0f8d57cb0c98adc541ea1de1cc1081cf14 (patch)
tree2c55c9de25f3009667bc367f68738b10b56bcf84
parent19f13d29a28b5b697f692b613784ff365b499081 (diff)
parente3ebc35b1695e9ac6e9b5978cd4e9ffb7b15f657 (diff)
downloadgit-a3ad9a0f8d57cb0c98adc541ea1de1cc1081cf14.tar.gz
git-a3ad9a0f8d57cb0c98adc541ea1de1cc1081cf14.tar.xz
Merge branch 'mm/config-xdg'
* mm/config-xdg: config: fix several access(NULL) calls
-rw-r--r--builtin/config.c16
-rw-r--r--config.c4
2 files changed, 14 insertions, 6 deletions
diff --git a/builtin/config.c b/builtin/config.c
index e8e1c0a45..8cd08da99 100644
--- a/builtin/config.c
+++ b/builtin/config.c
@@ -387,12 +387,20 @@ int cmd_config(int argc, const char **argv, const char *prefix)
home_config_paths(&user_config, &xdg_config, "config");
- if (access(user_config, R_OK) && !access(xdg_config, R_OK))
+ if (!user_config)
+ /*
+ * It is unknown if HOME/.gitconfig exists, so
+ * we do not know if we should write to XDG
+ * location; error out even if XDG_CONFIG_HOME
+ * is set and points at a sane location.
+ */
+ die("$HOME not set");
+
+ if (access(user_config, R_OK) &&
+ xdg_config && !access(xdg_config, R_OK))
given_config_file = xdg_config;
- else if (user_config)
- given_config_file = user_config;
else
- die("$HOME not set");
+ given_config_file = user_config;
}
else if (use_system_config)
given_config_file = git_etc_gitconfig();
diff --git a/config.c b/config.c
index 40818e872..2b706ea20 100644
--- a/config.c
+++ b/config.c
@@ -945,12 +945,12 @@ int git_config_early(config_fn_t fn, void *data, const char *repo_config)
found += 1;
}
- if (!access(xdg_config, R_OK)) {
+ if (xdg_config && !access(xdg_config, R_OK)) {
ret += git_config_from_file(fn, xdg_config, data);
found += 1;
}
- if (!access(user_config, R_OK)) {
+ if (user_config && !access(user_config, R_OK)) {
ret += git_config_from_file(fn, user_config, data);
found += 1;
}