summaryrefslogtreecommitdiff
path: root/gitweb/gitweb.css
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2026-07-02 04:04:11 -0400
committerJunio C Hamano <gitster@pobox.com>2026-07-02 09:50:47 -0700
commit64b69225620a4119e1ee6e02620c56a58dc442fb (patch)
tree4d442eeab47a4cc489d4d64f93471c5b96691c33 /gitweb/gitweb.css
parent46ba44e1fd6b1a3d71d529f6713821efc26072c9 (diff)
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>
Diffstat (limited to 'gitweb/gitweb.css')
0 files changed, 0 insertions, 0 deletions