Jeff King
64b6922562
patch-id: discard hash when done
...
When computing a patch-id, we have a flush_one_hunk() helper that calls
git_hash_final() on our running hunk git_hash_ctx, and then
reinitializes that context for the next hunk.
When we run out of hunks to look at, we return, discarding the
git_hash_ctx. This can cause a leak if the hash implementation we are
using allocates any memory during its initialization. This includes
OpenSSL >= 3.0, for both SHA-1 and SHA-256. Normally we would not use
SHA-1 here at all, as we only recommend using non-DC implementations for
the "unsafe" variant (and patch-id, though they probably _could_ use the
unsafe variant, were never taught to do so).
But it is certainly a problem for SHA-256, which you can see with:
make SANITIZE=leak \
OPENSSL_SHA256=1 \
GIT_TEST_DEFAULT_HASH=sha256 \
test
That results in leak failures of 60 scripts, 57 of which are fixed by
this patch (basically anything which runs rebase will hit this case).
Signed-off-by: Jeff King <peff@peff.net >
Signed-off-by: Junio C Hamano <gitster@pobox.com >
2026-07-02 09:50:47 -07:00
..
2026-03-24 12:31:32 -07:00
2026-04-01 10:28:18 -07:00
2025-07-01 14:58:24 -07:00
2026-04-07 14:59:28 -07:00
2026-02-23 13:21:19 -08:00
2026-02-20 08:13:58 -08:00
2026-03-18 12:52:29 -07:00
2025-04-15 08:24:35 -07:00
2026-03-31 20:43:14 -07:00
2025-07-23 08:15:18 -07:00
2025-07-23 08:15:22 -07:00
2026-02-20 08:13:58 -08:00
2025-07-23 08:15:22 -07:00
2025-07-23 08:15:22 -07:00
2026-03-24 12:31:32 -07:00
2025-09-29 11:40:35 -07:00
2026-03-05 10:04:49 -08:00
2025-07-23 08:15:18 -07:00
2025-10-22 10:40:11 -07:00
2026-01-15 05:32:31 -08:00
2026-03-24 12:31:32 -07:00
2026-03-26 12:47:17 -07:00
2025-10-16 14:42:39 -07:00
2025-07-23 08:15:20 -07:00
2026-01-12 11:56:56 -08:00
2025-07-23 08:15:22 -07:00
2026-02-23 13:21:18 -08:00
2025-04-15 08:24:35 -07:00
2025-07-23 08:15:18 -07:00
2025-07-23 08:15:18 -07:00
2026-02-13 13:39:25 -08:00
2025-08-09 17:22:01 -07:00
2025-07-01 14:46:38 -07:00
2026-03-26 12:42:57 -07:00
2026-07-02 09:50:47 -07:00
2025-06-04 08:52:25 -07:00
2026-03-31 20:43:14 -07:00
2025-08-11 09:19:40 -07:00
2025-08-22 13:13:20 -07:00
2026-03-03 10:20:00 -08:00
2026-04-08 10:19:17 -07:00
2025-07-23 08:15:22 -07:00
2026-03-25 12:58:05 -07:00
2026-03-12 14:09:07 -07:00
2025-07-23 08:15:22 -07:00
2026-03-23 09:20:30 -07:00
2026-04-06 10:17:36 -07:00
2026-03-25 14:00:48 -07:00
2026-04-08 10:19:17 -07:00
2025-04-24 17:25:34 -07:00
2026-03-27 11:00:02 -07:00
2026-02-13 13:39:25 -08:00
2026-04-03 13:01:08 -07:00
2025-09-08 14:54:35 -07:00
2025-11-04 07:32:25 -08:00
2026-01-09 18:36:18 -08:00
2026-01-15 05:32:31 -08:00
2026-03-27 11:00:01 -07:00
2026-02-06 11:45:33 -08:00
2025-08-08 11:13:12 -07:00
2026-02-13 13:39:25 -08:00
2026-03-12 08:30:57 -07:00
2026-03-23 08:33:10 -07:00
2026-03-12 10:03:23 -07:00
2026-03-25 12:58:05 -07:00
2026-02-26 07:22:51 -08:00
2026-03-18 10:39:56 -07:00
2025-08-21 13:47:00 -07:00
2026-04-06 15:42:49 -07:00
2026-02-21 21:26:53 -08:00
2025-09-19 10:02:55 -07:00
2026-07-02 09:50:47 -07:00
2025-08-05 11:53:55 -07:00
2026-03-12 08:30:57 -07:00
2026-02-26 07:22:53 -08:00
2025-10-14 12:56:09 -07:00
2026-01-09 18:36:18 -08:00
2026-03-24 12:26:58 -07:00
2026-04-09 11:21:59 -07:00
2025-10-15 10:29:28 -07:00
2026-03-23 08:33:10 -07:00
2026-03-31 20:43:14 -07:00
2026-03-27 13:40:40 -07:00
2025-11-04 07:32:24 -08:00
2026-04-01 21:34:25 -07:00
2026-03-25 10:35:27 -07:00
2025-07-23 08:15:18 -07:00
2026-03-03 15:09:36 -08:00
2026-04-06 12:02:30 -07:00
2026-03-26 12:47:17 -07:00
2025-09-18 10:07:00 -07:00
2025-07-23 08:15:22 -07:00
2025-07-23 08:15:22 -07:00
2026-02-20 08:13:58 -08:00
2026-01-15 05:32:31 -08:00
2026-01-30 08:58:12 -08:00
2026-03-31 20:43:14 -07:00
2026-03-05 10:04:49 -08:00
2026-03-30 08:19:40 -07:00
2025-07-23 08:15:18 -07:00
2026-03-25 12:58:05 -07:00
2025-07-23 08:15:22 -07:00
2026-03-24 12:31:31 -07:00
2025-07-23 08:15:22 -07:00
2026-04-08 10:19:17 -07:00
2025-09-16 11:37:06 -07:00
2026-01-25 22:27:33 -08:00
2025-07-23 08:15:22 -07:00
2025-11-19 17:41:03 -08:00
2025-11-19 17:41:03 -08:00
2025-08-21 13:46:59 -07:00
2025-07-23 08:15:22 -07:00
2025-07-23 08:15:22 -07:00
2025-12-29 22:02:53 +09:00
2026-04-03 13:01:09 -07:00
2025-07-23 08:15:22 -07:00