Re: [PATCH v2 1/2] t/helper/test-sha1: prepare for an unsafe mode
- From
Jeff King <peff@peff.net>
- Date
- Nov 8, 2024, 17:26 UTC
- Message-ID
- <20241108172611.GE548990@coredump.intra.peff.net>
- In-Reply-To
- <Zy0xfVqtOXhEVDQB@nand.local>
On Thu, Nov 07, 2024 at 04:30:37PM -0500, Taylor Blau wrote:
Show 20 quoted lines
> > Yeah, I don't have a strong opinion one way or the other. I think, with > > the limitation I mentioned above, it would probably require a decent > > amount of refactoring if we took a different approach, and I'm fine with > > going with Taylor's current approach unless he wants to do that > > refactoring (in which case, great). > > I think it does buy you something for real code, which is that you don't > have to remember to consistently call the unsafe_ variants of all of the > various function pointers. > > For instance, if you do > > the_hash_algo->unsafe_init_fn(...); > > early on, and then later on by mistake write: > > the_hash_algo->update_fn(...); > > Then your code is broken and will (as brian said) either in the best > case produce wrong results, or likely segfault.
Yes, true. I sort of assume that all of those calls are happening within one function (or at least a suite of related functions). Just because there's an implicit context of "I am computing the hash for an object" versus "I am computing a checksum".
And if we ever do move to splitting those further (to have crc32 or whatever for the checksum), then having a git_hash_algo for that would seem even weirder.
-Peff