Provide BIO_up_ref().
authorjsing <jsing@openbsd.org>
Thu, 22 Feb 2018 16:38:43 +0000 (16:38 +0000)
committerjsing <jsing@openbsd.org>
Thu, 22 Feb 2018 16:38:43 +0000 (16:38 +0000)
lib/libcrypto/Symbols.list
lib/libcrypto/bio/bio.h
lib/libcrypto/bio/bio_lib.c

index 4e29e85..854baed 100644 (file)
@@ -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
index 0a05d64..b85f718 100644 (file)
@@ -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);
index 8ad54ce..ddab542 100644 (file)
@@ -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)
 {