From d4f8f0d0a5c870813e120bbf1add121812550076 Mon Sep 17 00:00:00 2001 From: night1rider Date: Fri, 27 Feb 2026 10:36:44 -0700 Subject: [PATCH] Revert XMEMSET 0 after free in copy process for digest/hashing functions --- wolfcrypt/src/md5.c | 2 -- wolfcrypt/src/sha.c | 2 -- wolfcrypt/src/sha256.c | 4 ---- wolfcrypt/src/sha3.c | 2 -- wolfcrypt/src/sha512.c | 4 ---- 5 files changed, 14 deletions(-) diff --git a/wolfcrypt/src/md5.c b/wolfcrypt/src/md5.c index 06b8828c26..aa24c63bb6 100644 --- a/wolfcrypt/src/md5.c +++ b/wolfcrypt/src/md5.c @@ -540,8 +540,6 @@ int wc_Md5Copy(wc_Md5* src, wc_Md5* dst) /* Free dst resources before copy to prevent memory leaks (e.g., * hardware contexts). XMEMCPY overwrites dst. */ wc_Md5Free(dst); - XMEMSET(dst, 0, sizeof(wc_Md5)); - XMEMCPY(dst, src, sizeof(wc_Md5)); #if defined(WOLFSSL_ASYNC_CRYPT) && defined(WC_ASYNC_ENABLE_MD5) diff --git a/wolfcrypt/src/sha.c b/wolfcrypt/src/sha.c index c21c134c00..1af94e8155 100644 --- a/wolfcrypt/src/sha.c +++ b/wolfcrypt/src/sha.c @@ -1175,8 +1175,6 @@ int wc_ShaCopy(wc_Sha* src, wc_Sha* dst) /* Free dst resources before copy to prevent memory leaks (e.g., msg * buffer, W cache, hardware contexts). XMEMCPY overwrites dst. */ wc_ShaFree(dst); - XMEMSET(dst, 0, sizeof(wc_Sha)); - XMEMCPY(dst, src, sizeof(wc_Sha)); #if defined(WOLFSSL_SILABS_SE_ACCEL) && defined(WOLFSSL_SILABS_SE_ACCEL_3) diff --git a/wolfcrypt/src/sha256.c b/wolfcrypt/src/sha256.c index 0de305276d..fbe8157d81 100644 --- a/wolfcrypt/src/sha256.c +++ b/wolfcrypt/src/sha256.c @@ -2585,8 +2585,6 @@ int wc_Sha224_Grow(wc_Sha224* sha224, const byte* in, int inSz) /* Free dst resources before copy to prevent memory leaks (e.g., msg * buffer, W cache, hardware contexts). XMEMCPY overwrites dst. */ wc_Sha224Free(dst); - XMEMSET(dst, 0, sizeof(wc_Sha224)); - XMEMCPY(dst, src, sizeof(wc_Sha224)); #ifdef WOLFSSL_SMALL_STACK_CACHE @@ -2736,8 +2734,6 @@ int wc_Sha256Copy(wc_Sha256* src, wc_Sha256* dst) /* Free dst resources before copy to prevent memory leaks (e.g., msg * buffer, W cache, hardware contexts). XMEMCPY overwrites dst. */ wc_Sha256Free(dst); - XMEMSET(dst, 0, sizeof(wc_Sha256)); - XMEMCPY(dst, src, sizeof(wc_Sha256)); #ifdef WOLFSSL_MAXQ10XX_CRYPTO diff --git a/wolfcrypt/src/sha3.c b/wolfcrypt/src/sha3.c index 9fa681fd2f..6fa0e89e8b 100644 --- a/wolfcrypt/src/sha3.c +++ b/wolfcrypt/src/sha3.c @@ -1309,8 +1309,6 @@ static int wc_Sha3Copy(wc_Sha3* src, wc_Sha3* dst) /* Free dst resources before copy to prevent memory leaks (e.g., * hardware contexts). XMEMCPY overwrites dst. */ wc_Sha3Free(dst); - XMEMSET(dst, 0, sizeof(wc_Sha3)); - XMEMCPY(dst, src, sizeof(wc_Sha3)); #if defined(WOLFSSL_ASYNC_CRYPT) && defined(WC_ASYNC_ENABLE_SHA3) diff --git a/wolfcrypt/src/sha512.c b/wolfcrypt/src/sha512.c index c120907f7d..70df3c68fe 100644 --- a/wolfcrypt/src/sha512.c +++ b/wolfcrypt/src/sha512.c @@ -2252,8 +2252,6 @@ int wc_Sha512Copy(wc_Sha512* src, wc_Sha512* dst) /* Free dst resources before copy to prevent memory leaks (e.g., msg * buffer, W cache, hardware contexts). XMEMCPY overwrites dst. */ wc_Sha512Free(dst); - XMEMSET(dst, 0, sizeof(wc_Sha512)); - XMEMCPY(dst, src, sizeof(wc_Sha512)); #ifdef WOLFSSL_SMALL_STACK_CACHE /* This allocation combines the customary W buffer used by @@ -2695,8 +2693,6 @@ int wc_Sha384Copy(wc_Sha384* src, wc_Sha384* dst) /* Free dst resources before copy to prevent memory leaks (e.g., msg * buffer, W cache, hardware contexts). XMEMCPY overwrites dst. */ wc_Sha384Free(dst); - XMEMSET(dst, 0, sizeof(wc_Sha384)); - XMEMCPY(dst, src, sizeof(wc_Sha384)); #ifdef WOLFSSL_SMALL_STACK_CACHE