[Openvpn-devel,v1] xkey_digest: free the EVP_MD when EVP_Digest() fails

Message ID 20261112214330.13701-1-gert@greenie.muc.de
State New
Headers
Series [Openvpn-devel,v1] xkey_digest: free the EVP_MD when EVP_Digest() fails |

Commit Message

Gert Doering Nov. 12, 2026, 9:43 p.m. UTC
  From: Razvan Cojocaru <razvanc@mailbox.org>

The error path returned without EVP_MD_free().

Change-Id: Ie87632ae3503f4c74b327186e6952f66ada66640
Signed-off-by: Razvan Cojocaru <razvanc@mailbox.org>
Acked-by: Frank Lichtenheld <frank@lichtenheld.com>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/2178
---

This change was reviewed on Gerrit and approved by at least one
developer. I request to merge it to master.

Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/2178
This mail reflects revision 1 of this Change.

Acked-by according to Gerrit (reflected above):
Frank Lichtenheld <frank@lichtenheld.com>
  

Patch

diff --git a/src/openvpn/xkey_helper.c b/src/openvpn/xkey_helper.c
index 6908cbb..fb088a8 100644
--- a/src/openvpn/xkey_helper.c
+++ b/src/openvpn/xkey_helper.c
@@ -71,12 +71,13 @@ 
     }
 
     unsigned int len = (unsigned int)*buflen;
-    if (EVP_Digest(src, srclen, buf, &len, md, NULL) != 1)
+    int ret = EVP_Digest(src, srclen, buf, &len, md, NULL);
+    EVP_MD_free(md);
+    if (ret != 1)
     {
         msg(M_WARN, "WARN: xkey_digest: EVP_Digest failed");
         return 0;
     }
-    EVP_MD_free(md);
 
     *buflen = len;
     return 1;