"Alexandr Miloslavskiy via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes: > diff --git a/sha1-file.c b/sha1-file.c > index 616886799e5..f2b24654895 100644 > --- a/sha1-file.c > +++ b/sha1-file.c > @@ -676,20 +676,15 @@ void add_to_alternates_memory(const char *reference) > char *compute_alternate_path(const char *path, struct strbuf *err) > { > char *ref_git = NULL; > - const char *repo, *ref_git_s; > + const char *repo; > int seen_error = 0; > > - ref_git_s = real_path_if_valid(path); > - if (!ref_git_s) { > + ref_git = real_pathdup(path, 0); > + if (!ref_git) { > seen_error = 1; > strbuf_addf(err, _("path '%s' does not exist"), path); > goto out; > - } else > - /* > - * Beware: read_gitfile(), real_path() and mkpath() > - * return static buffer > - */ > - ref_git = xstrdup(ref_git_s); > + } It is amusing to see that rewriting not to use the unsafe function makes the code a lot easier to follow ;-)