summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authortb <tb@openbsd.org>2018-08-24 19:27:01 +0000
committertb <tb@openbsd.org>2018-08-24 19:27:01 +0000
commit6d88dd773a36762a01698745d7c23f1b818ee193 (patch)
treee73014f5c1028434a285d5b7f2ac323ada5b7184 /lib
parentIn ENGINE_up_ref(), check return value of CRYPTO_add() and report (diff)
downloadwireguard-openbsd-6d88dd773a36762a01698745d7c23f1b818ee193.tar.xz
wireguard-openbsd-6d88dd773a36762a01698745d7c23f1b818ee193.zip
In DSO_up_ref(), check return value of CRYPTO_add() and report
failure accordingly. ok jsing
Diffstat (limited to 'lib')
-rw-r--r--lib/libcrypto/dso/dso_lib.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/libcrypto/dso/dso_lib.c b/lib/libcrypto/dso/dso_lib.c
index 7902fbcc6e6..6dc98803ece 100644
--- a/lib/libcrypto/dso/dso_lib.c
+++ b/lib/libcrypto/dso/dso_lib.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dso_lib.c,v 1.19 2017/01/29 17:49:23 beck Exp $ */
+/* $OpenBSD: dso_lib.c,v 1.20 2018/08/24 19:27:01 tb Exp $ */
/* Written by Geoff Thorpe (geoff@geoffthorpe.net) for the OpenSSL
* project 2000.
*/
@@ -174,13 +174,15 @@ DSO_flags(DSO *dso)
int
DSO_up_ref(DSO *dso)
{
+ int refs;
+
if (dso == NULL) {
DSOerror(ERR_R_PASSED_NULL_PARAMETER);
return (0);
}
- CRYPTO_add(&dso->references, 1, CRYPTO_LOCK_DSO);
- return (1);
+ refs = CRYPTO_add(&dso->references, 1, CRYPTO_LOCK_DSO);
+ return ((refs > 1) ? 1 : 0);
}
DSO *