diff options
author | Michael Haggerty <mhagger@alum.mit.edu> | 2014-11-16 10:37:44 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-11-17 20:24:35 +0300 |
commit | 3696a7c2d9a4f3227dd7719b734e9db242aae6af (patch) | |
tree | ef0c2b3226343ba2aacf6d436d814eca3a4eaee3 /builtin/config.c | |
parent | 49e0c5ad0ab95e450138105ff27688861a4a1557 (diff) |
cmd_config(): make a copy of path obtained from git_path()
The strings returned by git_path() are recycled after a while. Make
a copy of the config filename rather than holding onto the return
value from git_path().
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/config.c')
-rw-r--r-- | builtin/config.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/builtin/config.c b/builtin/config.c index 8cc2604069..606a3c0856 100644 --- a/builtin/config.c +++ b/builtin/config.c @@ -568,8 +568,8 @@ int cmd_config(int argc, const char **argv, const char *prefix) } } else if (actions == ACTION_EDIT) { - const char *config_file = given_config_source.file ? - given_config_source.file : git_path("config"); + char *config_file; + check_argc(argc, 0, 0); if (!given_config_source.file && nongit) die("not in a git directory"); @@ -578,6 +578,8 @@ int cmd_config(int argc, const char **argv, const char *prefix) if (given_config_source.blob) die("editing blobs is not supported"); git_config(git_default_config, NULL); + config_file = xstrdup(given_config_source.file ? + given_config_source.file : git_path("config")); if (use_global_config) { int fd = open(config_file, O_CREAT | O_EXCL | O_WRONLY, 0666); if (fd) { @@ -590,6 +592,7 @@ int cmd_config(int argc, const char **argv, const char *prefix) die_errno(_("cannot create configuration file %s"), config_file); } launch_editor(config_file, NULL, NULL); + free(config_file); } else if (actions == ACTION_SET) { int ret; |