The issue with `real_path()` seems to be long-standing, where multiple people solved parts of it over time. I'm adding another part here after I have discovered a crash related to it. Even with this step, there are still problems remaining: * `read_gitfile_gently()` still uses shared buffer. * `absolute_path()` was not removed. These issues remain because there're too many code references and I'd like to avoid submitting a single topic of a scary size. Alexandr Miloslavskiy (4): set_git_dir: fix crash when used with real_path() real_path: remove unsafe API real_path_if_valid(): remove unsafe API get_superproject_working_tree(): return strbuf abspath.c | 18 +----------------- builtin/clone.c | 7 ++++++- builtin/commit-graph.c | 6 +++++- builtin/init-db.c | 4 ++-- builtin/rev-parse.c | 12 ++++++++---- builtin/worktree.c | 10 +++++++--- cache.h | 4 +--- editor.c | 11 +++++++++-- environment.c | 18 ++++++++++++++++-- path.c | 4 ++-- setup.c | 37 ++++++++++++++++++++++++------------- sha1-file.c | 13 ++++--------- submodule.c | 22 ++++++++++++---------- submodule.h | 4 ++-- t/helper/test-path-utils.c | 6 +++++- worktree.c | 13 ++++++++++--- 16 files changed, 114 insertions(+), 75 deletions(-) base-commit: 076cbdcd739aeb33c1be87b73aebae5e43d7bcc5 Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-575%2FSyntevoAlex%2F%230205(git)_crash_real_path-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-575/SyntevoAlex/#0205(git)_crash_real_path-v1 Pull-Request: https://github.com/gitgitgadget/git/pull/575 -- gitgitgadget