BIO: at the end of BIO_new, declare the BIO inited if no create method present
authorRichard Levitte <levitte@openssl.org>
Wed, 31 Jan 2018 10:17:32 +0000 (11:17 +0100)
committerRichard Levitte <levitte@openssl.org>
Wed, 31 Jan 2018 16:45:45 +0000 (17:45 +0100)
Without this, every BIO implementation is forced to have a create
method, just to set bio->init = 1.

Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5223)

(cherry picked from commit 7f55808fe723c146428415a470ed42331548007b)

crypto/bio/bio_lib.c

index 94888394c198e66b808a6f8541ee934d83b4571c..9210a216a55bf911a82c7f9ad9ef4340f1de03c5 100644 (file)
@@ -42,6 +42,8 @@ BIO *BIO_new(const BIO_METHOD *method)
         CRYPTO_THREAD_lock_free(bio->lock);
         goto err;
     }
+    if (method->create == NULL)
+        bio->init = 1;
 
     return bio;