Skip to content

Commit 2e20ea8

Browse files
committed
sha: Use EVP_DigestInit_ex for resetting EVP_MD_CTX
Calling EVP_DigestInit on an already initialized EVP_MD_CTX results in memory leak on OpenSSL 1.0.2. This switches to using EVP_DigestInit_ex to ensure that the underlying EVP_MD_CTX is reset. Signed-off-by: Daiki Ueno <[email protected]>
1 parent fc5f4b6 commit 2e20ea8

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

openssl/sha.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,8 @@ func (h *evpHash) finalize() {
103103
func (h *evpHash) Reset() {
104104
// There is no need to reset h.ctx2 because it is always reset after
105105
// use in evpHash.sum.
106-
if C.go_openssl_EVP_DigestInit(h.ctx, h.md) != 1 {
107-
panic(newOpenSSLError("EVP_DigestInit"))
106+
if C.go_openssl_EVP_DigestInit_ex(h.ctx, h.md, nil) != 1 {
107+
panic(newOpenSSLError("EVP_DigestInit_ex"))
108108
}
109109
runtime.KeepAlive(h)
110110
}

0 commit comments

Comments
 (0)