Re: [PATCH 3/4] real_path_if_valid(): remove unsafe API
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 6, 2020, 22:14 UTC
- Message-ID
- <xmqqzhct167f.fsf@gitster-ct.c.googlers.com>
- In-Reply-To
- <59af49ad9f6b2ffc87e350f9bc00d233f2a9010f.1583521396.git.gitgitgadget@gmail.com>
"Alexandr Miloslavskiy via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 26 quoted lines
> 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 ;-)