From: Derrick Stolee <stolee@gmail.com>
To: Aniket Gupta <aniketgupta3001@gmail.com>, git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>, Patrick Steinhardt <ps@pks.im>
Subject: Re: [PATCH v3 2/3] remote: do not show credentials when relative_url() fails
Date: Fri, 6 Nov 2026 09:43:50 -0500 [thread overview]
Message-ID: <85924f20-298f-401e-88f7-7fb3f949d0fe@gmail.com> (raw)
In-Reply-To: <20261105152842.566318-3-aniketgupta3001@gmail.com>
On 11/5/2026 10:28 AM, Aniket Gupta wrote:
> When relative_url() cannot resolve a URL, it names the URL in its error
> message. If the URL contains a user name and password, both end up in
> the message, and from there in terminal output and logs.
>
> Pass the URL through transport_anonymize_url() first. Also name the
> URL that was passed in rather than what is left of it after some
> components have already been stripped off, which is what a user would
> recognize.
I'm less convinced on this factor. I understand anonymizing the URL if
we are sending it to a location that is perhaps "less trusted" (like
trace logs) but the user asked us to operate on a given URL that caused
problems, so they should know the string that caused problems.
In environments that store stdout/stderr logs, those systems already
need to be careful about such strings in the commands themselves, let
alone the output strings.
And back to the bundle-URI application: if the bundle list uses such
URIs for its child bundles, then that's not a safe mechanism for
communicating those credentials. This isn't going to protect secrets
like that from being exposed.
This is just my opinion on the necessity of this change. If we _do_
want this change, then I continued my review: the patch accomplishes
its goal.
> @@ -3078,9 +3078,12 @@ char *relative_url_gently(const char *remote_url, const char *url,
> url += 3;
> chopped = chop_last_dir(&remoteurl, is_relative);
> if (chopped < 0) {
> + char *anon = transport_anonymize_url(remote_url);
> +
> strbuf_addf(err,
> _("cannot strip one component off url '%s'"),
> - remoteurl);
> + anon);
> + free(anon);
> free(remoteurl);
This code looks good, assuming taht we want to make this change.
> +test_expect_success 'relative_url() does not show credentials when it fails' '
> + cat >expect <<-\EOF &&
> + fatal: cannot strip one component off url '\''https://host.example/a'\''
> + EOF
> + test_must_fail test-tool submodule resolve-relative-url "" \
> + "https://user:secret@host.example/a" ../../../../../../x 2>actual &&
> + test_cmp expect actual
> +'
Thank you for including a test that demonstrates this change.
Thanks,
-Stolee
next prev parent reply other threads:[~2026-11-06 14:43 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-05 15:28 [PATCH v3 0/3] bundle-uri: do not die on unresolvable relative URIs Aniket Gupta
2026-11-05 15:28 ` [PATCH v3 1/3] remote: add relative_url_gently() Aniket Gupta
2026-11-06 14:36 ` Derrick Stolee
2026-11-05 15:28 ` [PATCH v3 2/3] remote: do not show credentials when relative_url() fails Aniket Gupta
2026-11-06 14:43 ` Derrick Stolee [this message]
2026-11-06 19:15 ` Junio C Hamano
2026-11-05 15:28 ` [PATCH v3 3/3] bundle-uri: do not die on unresolvable relative URIs Aniket Gupta
2026-11-06 14:51 ` Derrick Stolee
2026-11-06 14:57 ` [PATCH v3 0/3] " Derrick Stolee
2026-11-06 17:25 ` Aniket Gupta
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=85924f20-298f-401e-88f7-7fb3f949d0fe@gmail.com \
--to=stolee@gmail.com \
--cc=aniketgupta3001@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=ps@pks.im \
/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