summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortb <>2018-04-06 09:19:36 +0000
committertb <>2018-04-06 09:19:36 +0000
commit030b3661ae673f11f7652c6786ab1cb1c7c2e34c (patch)
treedb6bfe698067be60c96a2232a887dd9eb8f3a43d /src
parentcbd1d6a8808038e6f357e956a343f70ecaf110f4 (diff)
downloadopenbsd-030b3661ae673f11f7652c6786ab1cb1c7c2e34c.tar.gz
openbsd-030b3661ae673f11f7652c6786ab1cb1c7c2e34c.tar.bz2
openbsd-030b3661ae673f11f7652c6786ab1cb1c7c2e34c.zip
Avoid leaking str if EVP_Digest() fails.
Found and fixed by Bernd Edlinger as part of OpenSSL commit 83b4049ab75e9da1815e9c854a9297bca3d4af6b ok jsing, deraadt, bcook
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/asn1/a_digest.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/lib/libcrypto/asn1/a_digest.c b/src/lib/libcrypto/asn1/a_digest.c
index 085a57d811..5b95adf115 100644
--- a/src/lib/libcrypto/asn1/a_digest.c
+++ b/src/lib/libcrypto/asn1/a_digest.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: a_digest.c,v 1.15 2014/07/11 08:44:47 jsing Exp $ */ 1/* $OpenBSD: a_digest.c,v 1.16 2018/04/06 09:19:36 tb Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -77,8 +77,11 @@ ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *asn,
77 if (!str) 77 if (!str)
78 return (0); 78 return (0);
79 79
80 if (!EVP_Digest(str, i, md, len, type, NULL)) 80 if (!EVP_Digest(str, i, md, len, type, NULL)) {
81 return 0; 81 free(str);
82 return (0);
83 }
84
82 free(str); 85 free(str);
83 return (1); 86 return (1);
84} 87}