git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] receive-pack: fix crash on out-of-namespace symref

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 28, 2025, 14:57 UTC
Message-ID
<xmqqfr8uk61i.fsf@gitster.g>
In-Reply-To
<pull.2144.git.git.1766850014289.gitgitgadget@gmail.com>
"Troels Thomsen via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 17 quoted lines
> From: Troels Thomsen <troels@thomsen.io>
>
> `check_aliased_update_internal()` detects when a symbolic ref and its
> target are being updated in the same push. It does this by building a
> list of ref names without the optional namespace prefix. When a symbolic
> ref within a namespace points to a ref outside the namespace,
> `strip_namespace()` returns NULL which leads to a segfault.
>
> A NULL check preventing this particular issue was repurposed in
> ded8393610. Rather than reintroducing it, we can instead build a list of
> fully qualified ref names. This prevents the crash, preserves the
> consistency check from da3efdb17b, and allows updates to all symbolic
> refs.
>
> Signed-off-by: Troels Thomsen <troels@thomsen.io>
> ---
>     receive-pack: fix crash on out-of-namespace symref

Fixing crash is certainly a good thing, but when the namespace is segregated and receive-pack wants to get updates only within the given namespace, would presence of such a cross namespace symref cause updates outside the namespace through the symref, defeating the point of setting up a namespace in the first place?

I am not objecting to the new behaviour, but am not sure if it is a sensible one. You _might_ be able to argue that an attempt to update underlying refs outside the namespace through such a symbolic ref should result in an error (i.e., a fix to the current crashing behaviour is to die in a controlled way).

Thoughts?
Previous: Troels Thomsen via GitGitGadgetNext: Troels Thomsen
Message 2 of 7 in “receive-pack: fix crash on out-of-namespace symref”
  1. receive-pack: fix crash on out-of-namespace symrefTroels Thomsen via GitGitGadget, Dec 27, 2025
  2. Junio C HamanoDec 28, 2025
  3. Troels ThomsenDec 28, 2025
  4. Junio C HamanoDec 30, 2025
  5. Junio C HamanoFeb 21, 2026
  6. Troels ThomsenFeb 22, 2026
  7. Junio C HamanoFeb 22, 2026

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.