From: Kaartic Sivaraam <kaartic.sivaraam@gmail.com>
To: Atharva Raykar <raykar.ath@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>,
avarab@gmail.com, christian.couder@gmail.com,
congdanhqx@gmail.com, emilyshaffer@google.com,
git@vger.kernel.org, jrnieder@gmail.com, pc44800@gmail.com,
periperidip@gmail.com, rafaeloliveira.cs@gmail.com,
sunshine@sunshineco.com
Subject: Re: [GSoC] [PATCH v4 1/8] submodule--helper: add options for compute_submodule_clone_url()
Date: Tue, 10 Aug 2021 23:06:03 +0530 [thread overview]
Message-ID: <7b19892d-9171-bc72-1f96-8df88f8d57a5@gmail.com> (raw)
In-Reply-To: <m2wnov9f8s.fsf@gmail.com>
On 09/08/21 2:17 pm, Atharva Raykar wrote:
>
> Atharva Raykar <raykar.ath@gmail.com> writes:
>
>> Kaartic Sivaraam <kaartic.sivaraam@gmail.com> writes:
>>
>>> On 08/08/21 11:11 pm, Kaartic Sivaraam wrote:
>>>> On 07/08/21 12:46 pm, Atharva Raykar wrote:
>>>> [...]
>>>> char *remote = get_default_remote();
>>>> @@ -598,10 +598,14 @@ static char *compute_submodule_clone_url(const char *rel_url)
>>>> strbuf_addf(&remotesb, "remote.%s.url", remote);
>>>> if (git_config_get_string(remotesb.buf, &remoteurl)) {
>>>> - warning(_("could not look up configuration '%s'. Assuming this repository is its own authoritative upstream."), remotesb.buf);
>>>> + if (!quiet)
>>>> + warning(_("could not look up configuration '%s'. "
>>>> + "Assuming this repository is its own "
>>>> + "authoritative upstream."),
>>>> + remotesb.buf);
>>>> remoteurl = xgetcwd();
>>>> }
>>>> - relurl = relative_url(remoteurl, rel_url, NULL);
>>>> + relurl = relative_url(remoteurl, rel_url, up_path);
>>>
>>> After reading 2/8 of the series, I just noticed that 'remoteurl' is always
>>> initialized in 'resolve_realtive_url'. It is either initialized to the return
>>> value of 'xgetcwd' or retains its assigned value of 'NULL'. But it looks
>>> like that's not the case here. 'remoteurl' could be used uninitialized
>>> when the above if block does not get executed which in turn could result in
>>> weird behaviour in case 'remoteurl' gets a value of anything other than 'NULL'
>>> at runtime.
>>>
>>> This again has nothing to do with the change done in this patch. Regardless, it
>>> looks like something worth correcting. Thus, I thought of pointing it out.
>>>
>>
>> Right. I agree it should be corrected.
>
> Actually on having another look, I'm not sure if we need to assign NULL
> to 'remoteurl' at all.
>
> The 'if (git_config_get_string(...))' on success will allocate
> 'remoteurl'. If it fails, it will be given the return value of
> 'xgetcwd()'. There is nothing in the config API docs that suggest a
> success mode for the git_config_get_*() functions that will assign
> nothing to the buffer we give it. Therefore, by the time we get to the
> variable's first use in the 'relative_url()' function, we are guaranteed
> to have a well-defined value.
>
Ah ha! That explains why we haven't got any reports about weird behaviours
when using the likes of `git submodule init` so far ;-)
Thanks for digging this and sorry about the false flag!
> It seems to me that the original 'resolve_relative_url()' had an
> unnecessary NULL initialization.
>
Makes sense. I guess I feel into the trap of blindly trusting that the original
code was written correctly x-<
--
Sivaraam
next prev parent reply other threads:[~2021-08-10 17:58 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-05 7:19 [GSoC] [PATCH 0/8] submodule: convert the rest of 'add' to C Atharva Raykar
2021-08-05 7:19 ` [GSoC] [PATCH 1/8] submodule--helper: refactor resolve_relative_url() helper Atharva Raykar
2021-08-05 7:19 ` [GSoC] [PATCH 2/8] submodule--helper: remove repeated code in sync_submodule() Atharva Raykar
2021-08-06 0:53 ` Đoàn Trần Công Danh
2021-08-06 9:06 ` Christian Couder
2021-08-06 10:06 ` Atharva Raykar
2021-08-06 16:21 ` Junio C Hamano
2021-08-05 7:19 ` [GSoC] [PATCH 3/8] dir: libify and export helper functions from clone.c Atharva Raykar
2021-08-05 7:19 ` [GSoC] [PATCH 4/8] submodule--helper: remove constness of sm_path Atharva Raykar
2021-08-05 7:19 ` [GSoC] [PATCH 5/8] submodule--helper: convert the bulk of cmd_add() to C Atharva Raykar
2021-08-05 7:19 ` [GSoC] [PATCH 6/8] submodule--helper: remove add-clone subcommand Atharva Raykar
2021-08-05 7:19 ` [GSoC] [PATCH 7/8] submodule--helper: remove add-config subcommand Atharva Raykar
2021-08-05 7:19 ` [GSoC] [PATCH 8/8] submodule--helper: remove resolve-relative-url subcommand Atharva Raykar
2021-08-05 7:40 ` [GSoC] [PATCH v2 0/9] submodule: convert the rest of 'add' to C Atharva Raykar
2021-08-05 7:40 ` [GSoC] [PATCH v2 1/9] submodule--helper: add options for compute_submodule_clone_url() Atharva Raykar
2021-08-05 20:05 ` Junio C Hamano
2021-08-05 7:40 ` [GSoC] [PATCH v2 2/9] submodule--helper: refactor resolve_relative_url() helper Atharva Raykar
2021-08-05 20:13 ` Junio C Hamano
2021-08-05 7:40 ` [GSoC] [PATCH v2 3/9] submodule--helper: remove repeated code in sync_submodule() Atharva Raykar
2021-08-05 20:20 ` Junio C Hamano
2021-08-05 7:40 ` [GSoC] [PATCH v2 4/9] dir: libify and export helper functions from clone.c Atharva Raykar
2021-08-05 20:37 ` Junio C Hamano
2021-08-06 11:12 ` Atharva Raykar
2021-08-06 16:36 ` Junio C Hamano
2021-08-07 7:15 ` Atharva Raykar
2021-08-05 7:40 ` [GSoC] [PATCH v2 5/9] submodule--helper: remove constness of sm_path Atharva Raykar
2021-08-05 20:40 ` Junio C Hamano
2021-08-06 11:16 ` Atharva Raykar
2021-08-05 7:40 ` [GSoC] [PATCH v2 6/9] submodule--helper: convert the bulk of cmd_add() to C Atharva Raykar
2021-08-06 1:14 ` Đoàn Trần Công Danh
2021-08-06 11:33 ` Atharva Raykar
2021-08-05 7:40 ` [GSoC] [PATCH v2 7/9] submodule--helper: remove add-clone subcommand Atharva Raykar
2021-08-05 7:40 ` [GSoC] [PATCH v2 8/9] submodule--helper: remove add-config subcommand Atharva Raykar
2021-08-05 7:40 ` [GSoC] [PATCH v2 9/9] submodule--helper: remove resolve-relative-url subcommand Atharva Raykar
2021-08-06 12:01 ` [GSoC] [PATCH v3 0/8] submodule: convert the rest of 'add' to C Atharva Raykar
2021-08-06 12:01 ` [GSoC] [PATCH v3 1/8] submodule--helper: add options for compute_submodule_clone_url() Atharva Raykar
2021-08-06 12:01 ` [GSoC] [PATCH v3 2/8] submodule--helper: refactor resolve_relative_url() helper Atharva Raykar
2021-08-06 12:01 ` [GSoC] [PATCH v3 3/8] submodule--helper: remove repeated code in sync_submodule() Atharva Raykar
2021-08-06 12:01 ` [GSoC] [PATCH v3 4/8] dir: libify and export helper functions from clone.c Atharva Raykar
2021-08-06 12:01 ` [GSoC] [PATCH v3 5/8] submodule--helper: convert the bulk of cmd_add() to C Atharva Raykar
2021-08-06 12:01 ` [GSoC] [PATCH v3 6/8] submodule--helper: remove add-clone subcommand Atharva Raykar
2021-08-06 12:01 ` [GSoC] [PATCH v3 7/8] submodule--helper: remove add-config subcommand Atharva Raykar
2021-08-06 12:01 ` [GSoC] [PATCH v3 8/8] submodule--helper: remove resolve-relative-url subcommand Atharva Raykar
2021-08-07 7:16 ` [GSoC] [PATCH v4 0/8] submodule: convert the rest of 'add' to C Atharva Raykar
2021-08-07 7:16 ` [GSoC] [PATCH v4 1/8] submodule--helper: add options for compute_submodule_clone_url() Atharva Raykar
2021-08-08 17:41 ` Kaartic Sivaraam
2021-08-08 18:26 ` Kaartic Sivaraam
2021-08-09 7:29 ` Atharva Raykar
2021-08-09 8:47 ` Atharva Raykar
2021-08-10 17:36 ` Kaartic Sivaraam [this message]
2021-08-07 7:16 ` [GSoC] [PATCH v4 2/8] submodule--helper: refactor resolve_relative_url() helper Atharva Raykar
2021-08-07 7:16 ` [GSoC] [PATCH v4 3/8] submodule--helper: remove repeated code in sync_submodule() Atharva Raykar
2021-08-08 19:00 ` Kaartic Sivaraam
2021-08-09 7:36 ` Atharva Raykar
2021-08-07 7:16 ` [GSoC] [PATCH v4 4/8] dir: libify and export helper functions from clone.c Atharva Raykar
2021-08-08 19:23 ` Kaartic Sivaraam
2021-08-09 8:02 ` Atharva Raykar
2021-08-10 17:53 ` Kaartic Sivaraam
2021-08-10 21:27 ` Junio C Hamano
2021-08-11 10:25 ` Atharva Raykar
2021-08-07 7:16 ` [GSoC] [PATCH v4 5/8] submodule--helper: convert the bulk of cmd_add() to C Atharva Raykar
2021-08-07 7:16 ` [GSoC] [PATCH v4 6/8] submodule--helper: remove add-clone subcommand Atharva Raykar
2021-08-07 7:16 ` [GSoC] [PATCH v4 7/8] submodule--helper: remove add-config subcommand Atharva Raykar
2021-08-07 7:16 ` [GSoC] [PATCH v4 8/8] submodule--helper: remove resolve-relative-url subcommand Atharva Raykar
2021-08-08 18:01 ` [GSoC] [PATCH v4 0/8] submodule: convert the rest of 'add' to C Kaartic Sivaraam
2021-08-10 11:46 ` [GSoC] [PATCH v5 0/9] " Atharva Raykar
2021-08-10 11:46 ` [GSoC] [PATCH v5 1/9] submodule--helper: add options for compute_submodule_clone_url() Atharva Raykar
2021-08-11 6:44 ` Bagas Sanjaya
2021-08-11 10:30 ` Atharva Raykar
2021-08-10 11:46 ` [GSoC] [PATCH v5 2/9] submodule--helper: refactor resolve_relative_url() helper Atharva Raykar
2021-08-10 11:46 ` [GSoC] [PATCH v5 3/9] submodule--helper: remove repeated code in sync_submodule() Atharva Raykar
2021-08-10 11:46 ` [GSoC] [PATCH v5 4/9] dir: libify and export helper functions from clone.c Atharva Raykar
2021-08-10 11:46 ` [GSoC] [PATCH v5 5/9] submodule--helper: convert the bulk of cmd_add() to C Atharva Raykar
2021-08-10 11:46 ` [GSoC] [PATCH v5 6/9] submodule--helper: remove add-clone subcommand Atharva Raykar
2021-08-10 11:46 ` [GSoC] [PATCH v5 7/9] submodule--helper: remove add-config subcommand Atharva Raykar
2021-08-10 11:46 ` [GSoC] [PATCH v5 8/9] submodule--helper: remove resolve-relative-url subcommand Atharva Raykar
2021-08-10 11:46 ` [GSoC] [PATCH v5 9/9] submodule--helper: rename compute_submodule_clone_url() Atharva Raykar
2021-09-08 0:31 ` [GSoC] [PATCH v5 0/9] submodule: convert the rest of 'add' to C Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7b19892d-9171-bc72-1f96-8df88f8d57a5@gmail.com \
--to=kaartic.sivaraam@gmail.com \
--cc=avarab@gmail.com \
--cc=christian.couder@gmail.com \
--cc=congdanhqx@gmail.com \
--cc=emilyshaffer@google.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jrnieder@gmail.com \
--cc=pc44800@gmail.com \
--cc=periperidip@gmail.com \
--cc=rafaeloliveira.cs@gmail.com \
--cc=raykar.ath@gmail.com \
--cc=sunshine@sunshineco.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).