From 46cff56cf4c3c4365e8d5352e0851243e3663d87 Mon Sep 17 00:00:00 2001 From: Vladimir Dubrovin <3proxy@3proxy.ru> Date: Thu, 7 May 2026 18:47:06 +0300 Subject: [PATCH] Use EVP_MD_CTX_reset instead of free/new --- src/3proxy_crypt.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/3proxy_crypt.c b/src/3proxy_crypt.c index 69ca4c6..e4bc7cd 100644 --- a/src/3proxy_crypt.c +++ b/src/3proxy_crypt.c @@ -118,7 +118,6 @@ unsigned char * mycrypt(const unsigned char *pw, const unsigned char *salt, unsi EVP_DigestUpdate(ctx1,sp,sl); EVP_DigestUpdate(ctx1,pw,strlen((char *)pw)); EVP_DigestFinal_ex(ctx1,final,&len); - EVP_MD_CTX_free(ctx1); for(pl = (int)strlen((char *)pw); pl > 0; pl -= MD5_SIZE) EVP_DigestUpdate(ctx,final,pl>MD5_SIZE ? MD5_SIZE : pl); @@ -142,7 +141,7 @@ unsigned char * mycrypt(const unsigned char *pw, const unsigned char *salt, unsi * need 30 seconds to build a 1000 entry dictionary... */ for(i=0;i<1000;i++) { - ctx1 = EVP_MD_CTX_new(); + EVP_MD_CTX_reset(ctx1); EVP_DigestInit_ex(ctx1, md5, NULL); if(i & 1) EVP_DigestUpdate(ctx1,pw,strlen((char *)pw)); @@ -160,8 +159,8 @@ unsigned char * mycrypt(const unsigned char *pw, const unsigned char *salt, unsi else EVP_DigestUpdate(ctx1,pw,strlen((char *)pw)); EVP_DigestFinal_ex(ctx1,final,&len); - EVP_MD_CTX_free(ctx1); } + EVP_MD_CTX_free(ctx1); } else #endif