Skip to content

Commit

Permalink
cmd_config(): make a copy of path obtained from git_path()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Michael Haggerty authored and Junio C Hamano committed Nov 17, 2014
1 parent 49e0c5a commit 3696a7c
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions builtin/config.c
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand All @@ -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) {
Expand All @@ -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;
Expand Down

0 comments on commit 3696a7c

Please sign in to comment.