- std::shared_ptr<BIO> n( BIO_new( toBio<OpensslBIO1>() ), BIO_free );
- OpensslBIO* o = new OpensslBIOWrapper( n );
- OpensslBIO1* data = ( OpensslBIO1* ) n->ptr;
+ std::shared_ptr<BIO_METHOD> m( toBio<OpensslBIO1>(), BIO_meth_free );
+ std::shared_ptr<BIO> n( BIO_new( m.get() ), BIO_free );
+ OpensslBIO *o = new OpensslBIOWrapper( n );
+ OpensslBIO1 *data = ( OpensslBIO1 * ) n->ptr;