From e0b8c84240037a592c5bd5f18fc382a98a323bea Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Fri, 1 Sep 2023 02:09:28 +0000 Subject: treewide: fix various bugs w/ OpenSSL 3+ EVP API The OpenSSL 3+ EVP API for SHA-* cannot support our prior use cases supported by other SHA-* implementations. It has the following differences: 1. ->init_fn is required before all use 2. struct assignments don't work and requires ->clone_fn 3. can't support ->update_fn after ->final_*fn While fixing cases 1 and 2 is merely the matter of calling ->init_fn and ->clone_fn as appropriate, fixing case 3 requires calling ->final_*fn on a temporary context that's cloned from the primary context. Reported-by: Bagas Sanjaya Link: https://lore.kernel.org/ZPCL11k38PXTkFga@debian.me/ Helped-by: brian m. carlson Fixes: 3e440ea0aba0 ("sha256: avoid functions deprecated in OpenSSL 3+") Fixes: bda9c12073e7 ("avoid SHA-1 functions deprecated in OpenSSL 3+") Signed-off-by: Eric Wong Signed-off-by: Junio C Hamano --- bulk-checkin.c | 1 + 1 file changed, 1 insertion(+) (limited to 'bulk-checkin.c') diff --git a/bulk-checkin.c b/bulk-checkin.c index d843279715..d03a40f2f9 100644 --- a/bulk-checkin.c +++ b/bulk-checkin.c @@ -270,6 +270,7 @@ static int deflate_to_pack(struct bulk_checkin_packfile *state, type, size); the_hash_algo->init_fn(&ctx); the_hash_algo->update_fn(&ctx, obuf, header_len); + the_hash_algo->init_fn(&checkpoint.ctx); /* Note: idx is non-NULL when we are writing */ if ((flags & HASH_WRITE_OBJECT) != 0) -- cgit v1.2.3