Git development
 help / color / mirror / Atom feed
From: "brian m. carlson" <sandals@crustytoothpaste.net>
To: Tanga Joris <tangajoris@gmail.com>
Cc: shrimech <eddinen77@gmail.com>, git@vger.kernel.org
Subject: Re: [PATCH v1] hash: handle invalid algorithms when formatting object IDs
Date: Fri, 6 Nov 2026 00:03:07 +0000	[thread overview]
Message-ID: <au0ZOsuyo0YYyZsa@fruit.crustytoothpaste.net> (raw)
In-Reply-To: <CAKrRMNrLvPck5psPpKX1eWe26To5srfFSLFObZ4zTX09RE551w@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1648 bytes --]

On 2026-11-05 at 14:47:00, Tanga Joris wrote:
> Hello shrimech,
> 
> Thank you for the patch.
> 
> I tried it on top of master (0ffa3e35c7). "cargo test" passes, and
> the new test fails without your change to fmt(), so it does catch
> the problem.
> 
> On Tue, 3 Nov 2026 at 07:42, shrimech <eddinen77@gmail.com> wrote:
> > +            Err(e) => write!(f, ":invalid-hash-algo-{}", e.0),
> 
> I have one question. In the C code, algo 0 is not treated as an
> error when printing: hash_to_hex_algop_r() in hex.c falls back to
> the default hash ("Our struct object_id has been memset to 0, so
> default to printing using the default hash"). Your test uses algo 0
> as the invalid case, so for algo 0 the Rust output would be
> different from C. Is that intended?

This is not a valid configuration.  I have a patch on my sha256-interop
branch, 5b208e4a3d34ffba0fbeafe991643d6d47a5caa0, that should make the
members not public.  It depends partially on things other in that
series, but it should be fine to drop those pieces if you want to pick
that up and send it in.

If you pass the structure from C, it's intended that it panics if algo
is zero.  That's because we don't want to rely on the behaviour of
depending on a mutable global in Rust, since that's unsafe and leads to
action at a distance.  We really should just drop that fallback and fix
all of the relevant callers at some point.

> brian m. carlson wrote most of src/hash.rs, so I have added him on
> Cc, I hope that is okay:)

Minor nit: I use they/them pronouns.
-- 
brian m. carlson (they/them)
Toronto, Ontario, CA
Speaking for myself only

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 325 bytes --]

  reply	other threads:[~2026-11-06  0:03 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-03  4:37 [PATCH v1] hash: handle invalid algorithms when formatting object IDs shrimech
2026-11-05 14:47 ` Tanga Joris
2026-11-06  0:03   ` brian m. carlson [this message]
2026-11-07 20:22     ` Tanga Joris
  -- strict thread matches above, loose matches on Subject: below --
2026-11-03  4:20 shrimech

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=au0ZOsuyo0YYyZsa@fruit.crustytoothpaste.net \
    --to=sandals@crustytoothpaste.net \
    --cc=eddinen77@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=tangajoris@gmail.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