All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Christian Couder <christian.couder@gmail.com>
Cc: git@vger.kernel.org,  Patrick Steinhardt <ps@pks.im>,
	 Taylor Blau <me@ttaylorr.com>,
	 Eric Sunshine <sunshine@sunshineco.com>,
	 Karthik Nayak <karthik.188@gmail.com>,
	 Kristoffer Haugsbakk <kristofferhaugsbakk@fastmail.com>,
	 "brian m . carlson" <sandals@crustytoothpaste.net>,
	 "Randall S . Becker" <rsbecker@nexbridge.com>,
	 Christian Couder <chriscool@tuxfamily.org>
Subject: Re: [PATCH v2] promisor-remote: fix segfault when remote URL is missing
Date: Tue, 11 Mar 2025 09:59:51 -0700	[thread overview]
Message-ID: <xmqqikof4i60.fsf@gitster.g> (raw)
In-Reply-To: <20250311152413.1059343-1-christian.couder@gmail.com> (Christian Couder's message of "Tue, 11 Mar 2025 16:24:13 +0100")

Christian Couder <christian.couder@gmail.com> writes:

> Using strvec_push() to push `NULL` into a 'strvec' results in a
> segfault, because `xstrdup(NULL)` crashes.
>
> So when an URL is missing from the config, let's push an empty string
> instead of `NULL` into the 'strvec' that stores URLs.
>

> We could have modified strvec_push() to behave like
> strvec_push_nodup() and accept `NULL`, but it's not clear that it's
> the right thing to do for the strvec API. 'strvec' is a kind of NULL
> terminated array that is designed to be compatible with 'argv'
> variables used on the command line. So we might want to disallow
> pushing any `NULL` in it instead.
>
> It's also not clear if `xstrdup(NULL)` should crash or BUG or just
> return NULL.

Yup, the above two paragraphs are irrelevant, I would think.

What we could have done may be to ignore (or error out) a
configuration entry that lacks URL as an error.  After all, isn't
this caused by a misconfiguration?  How such a misconfiguration is
swept under the rug, whether with an empty string or NULL, is
secondary, I would think.

> For all these reasons, let's just focus on fixing the issue in
> "promisor-remote.c" and let's leave improving the strvec API and/or
> xstrdup() for a future effort.

Absolutely.

> While at it let's warn and reject the remote, in the 'KnownUrl'
> case, when no URL is advertised by the server or no URL is
> configured on the client for a remote name advertised by the server
> and configured on the client. This is on par with a warning already
> emitted when URLs are different in the same case.

Yup.


  reply	other threads:[~2025-03-11 16:59 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-10  7:40 [PATCH] promisor-remote: fix segfault when remote URL is missing Christian Couder
2025-03-10 16:29 ` Junio C Hamano
2025-03-11 15:24   ` Christian Couder
2025-03-11 16:57     ` Junio C Hamano
2025-03-11 15:24 ` [PATCH v2] " Christian Couder
2025-03-11 16:59   ` Junio C Hamano [this message]
2025-03-12 11:48     ` Christian Couder
2025-03-11 20:48   ` Junio C Hamano
2025-03-12 11:47     ` Christian Couder
2025-03-11 23:06   ` Jeff King
2025-03-11 23:36     ` Junio C Hamano
2025-03-12 11:47     ` Christian Couder
2025-03-12 11:46   ` [PATCH v3] " Christian Couder
2025-03-12 17:02     ` Junio C Hamano
2025-03-13 10:39       ` Christian Couder
2025-03-13 16:40         ` Junio C Hamano
2025-03-14 14:09           ` Christian Couder
2025-03-14 17:28             ` Junio C Hamano
2025-03-13 10:38     ` [PATCH v4] " Christian Couder
2025-03-13 16:28       ` Junio C Hamano
2025-03-13 17:23         ` Junio C Hamano
2025-03-14 14:10         ` Christian Couder
2025-03-14 14:12       ` [PATCH v5 0/3] "promisor-remote" capability fixes Christian Couder
2025-03-14 14:12         ` [PATCH v5 1/3] promisor-remote: fix segfault when remote URL is missing Christian Couder
2025-03-14 18:59           ` Junio C Hamano
2025-03-18 11:03             ` Christian Couder
2025-03-14 14:12         ` [PATCH v5 2/3] promisor-remote: fix possible issue when no URL is advertised Christian Couder
2025-03-14 14:12         ` [PATCH v5 3/3] promisor-remote: compare remote names case sensitively Christian Couder
2025-03-14 17:28           ` Junio C Hamano
2025-03-18 11:04             ` Christian Couder
2025-03-18 11:00         ` [PATCH v6 0/4] "promisor-remote" capability fixes Christian Couder
2025-03-18 11:00           ` [PATCH v6 1/4] t5710: arrange to delete the client before cloning Christian Couder
2025-03-18 11:00           ` [PATCH v6 2/4] promisor-remote: fix segfault when remote URL is missing Christian Couder
2025-03-18 11:00           ` [PATCH v6 3/4] promisor-remote: fix possible issue when no URL is advertised Christian Couder
2025-03-18 11:00           ` [PATCH v6 4/4] promisor-remote: compare remote names case sensitively Christian Couder

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=xmqqikof4i60.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=chriscool@tuxfamily.org \
    --cc=christian.couder@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=karthik.188@gmail.com \
    --cc=kristofferhaugsbakk@fastmail.com \
    --cc=me@ttaylorr.com \
    --cc=ps@pks.im \
    --cc=rsbecker@nexbridge.com \
    --cc=sandals@crustytoothpaste.net \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.