diff --git a/builtin/init-db.c b/builtin/init-db.c index c55517ad94..01bc27904e 100644 --- a/builtin/init-db.c +++ b/builtin/init-db.c @@ -229,6 +229,8 @@ int cmd_init_db(int argc, if (!is_bare_repository_cfg) { const char *git_dir_parent = strrchr(git_dir, '/'); + char *git_work_tree_cfg = NULL; + if (git_dir_parent) { char *rel = xstrndup(git_dir, git_dir_parent - git_dir); git_work_tree_cfg = real_pathdup(rel, 1); @@ -243,6 +245,8 @@ int cmd_init_db(int argc, if (access(repo_get_work_tree(the_repository), X_OK)) die_errno (_("Cannot access work tree '%s'"), repo_get_work_tree(the_repository)); + + free(git_work_tree_cfg); } else { if (real_git_dir) diff --git a/environment.c b/environment.c index fc3ed8bb1c..4e86335f25 100644 --- a/environment.c +++ b/environment.c @@ -100,9 +100,6 @@ int auto_comment_line_char; bool warn_on_auto_comment_char; #endif /* !WITH_BREAKING_CHANGES */ -/* This is set by setup_git_directory_gently() and/or git_default_config() */ -char *git_work_tree_cfg; - /* * Repository-local GIT_* environment variables; see environment.h for details. */ diff --git a/environment.h b/environment.h index ccfcf37bfb..5d6e4e6c1b 100644 --- a/environment.h +++ b/environment.h @@ -149,7 +149,6 @@ int have_git_dir(void); extern int is_bare_repository_cfg; int is_bare_repository(void); -extern char *git_work_tree_cfg; /* Environment bits from configuration mechanism */ extern int trust_executable_bit; diff --git a/setup.c b/setup.c index b4652651df..52228b42a1 100644 --- a/setup.c +++ b/setup.c @@ -31,6 +31,9 @@ enum allowed_bare_repo { ALLOWED_BARE_REPO_ALL, }; +/* This is set by setup_git_directory_gently() and/or git_default_config() */ +static char *git_work_tree_cfg; + static struct startup_info the_startup_info; struct startup_info *startup_info = &the_startup_info; const char *tmp_original_cwd;