From 0bf6ecbe2d20b398c509a2a122cd7821dca2f0b9 Mon Sep 17 00:00:00 2001 From: jsing <> Date: Thu, 22 Feb 2018 16:38:43 +0000 Subject: Provide BIO_up_ref(). --- src/lib/libcrypto/Symbols.list | 1 + src/lib/libcrypto/bio/bio.h | 3 ++- src/lib/libcrypto/bio/bio_lib.c | 9 ++++++++- 3 files changed, 11 insertions(+), 2 deletions(-) (limited to 'src/lib') diff --git a/src/lib/libcrypto/Symbols.list b/src/lib/libcrypto/Symbols.list index 4e29e85236..854baed64a 100644 --- a/src/lib/libcrypto/Symbols.list +++ b/src/lib/libcrypto/Symbols.list @@ -362,6 +362,7 @@ BIO_sock_should_retry BIO_socket_ioctl BIO_socket_nbio BIO_test_flags +BIO_up_ref BIO_vfree BIO_vprintf BIO_vsnprintf diff --git a/src/lib/libcrypto/bio/bio.h b/src/lib/libcrypto/bio/bio.h index 0a05d64929..b85f7181bc 100644 --- a/src/lib/libcrypto/bio/bio.h +++ b/src/lib/libcrypto/bio/bio.h @@ -1,4 +1,4 @@ -/* $OpenBSD: bio.h,v 1.38 2018/02/20 18:17:17 tb Exp $ */ +/* $OpenBSD: bio.h,v 1.39 2018/02/22 16:38:43 jsing Exp $ */ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * @@ -603,6 +603,7 @@ BIO *BIO_new_fp(FILE *stream, int close_flag); BIO * BIO_new(BIO_METHOD *type); int BIO_set(BIO *a, BIO_METHOD *type); int BIO_free(BIO *a); +int BIO_up_ref(BIO *bio); void *BIO_get_data(BIO *a); void BIO_set_data(BIO *a, void *ptr); void BIO_set_init(BIO *a, int init); diff --git a/src/lib/libcrypto/bio/bio_lib.c b/src/lib/libcrypto/bio/bio_lib.c index 8ad54cefd2..ddab542881 100644 --- a/src/lib/libcrypto/bio/bio_lib.c +++ b/src/lib/libcrypto/bio/bio_lib.c @@ -1,4 +1,4 @@ -/* $OpenBSD: bio_lib.c,v 1.26 2018/02/20 17:55:26 tb Exp $ */ +/* $OpenBSD: bio_lib.c,v 1.27 2018/02/22 16:38:43 jsing Exp $ */ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * @@ -151,6 +151,13 @@ BIO_vfree(BIO *a) BIO_free(a); } +int +BIO_up_ref(BIO *bio) +{ + int refs = CRYPTO_add(&bio->references, 1, CRYPTO_LOCK_BIO); + return (refs > 1) ? 1 : 0; +} + void * BIO_get_data(BIO *a) { -- cgit v1.2.3-55-g6feb