Remove silly test for b->references at the end of BIO_write:
[openssl.git] / crypto / bio / bio_lib.c
index 3b9f415fb24149c5537702027a12b8eaaefcb5ee..ffdec3725d6da049984ac4cff696357ccd0e9c31 100644 (file)
@@ -201,15 +201,7 @@ int BIO_write(BIO *b, const void *in, int inl)
 
        if (i > 0) b->num_write+=(unsigned long)i;
 
-       /* This is evil and not thread safe.  If the BIO has been freed,
-        * we must not call the callback.  The only way to be able to
-        * determine this is the reference count which is now invalid since
-        * the memory has been free()ed.
-        */
-#ifdef REF_CHECK
-       if (b->references <= 0) abort();
-#endif
-       if (cb != NULL) /* && (b->references >= 1)) */
+       if (cb != NULL)
                i=(int)cb(b,BIO_CB_WRITE|BIO_CB_RETURN,in,inl,
                        0L,(long)i);
        return(i);
@@ -240,6 +232,8 @@ int BIO_puts(BIO *b, const char *in)
 
        i=b->method->bputs(b,in);
 
+       if (i > 0) b->num_write+=(unsigned long)i;
+
        if (cb != NULL)
                i=(int)cb(b,BIO_CB_PUTS|BIO_CB_RETURN,in,0,
                        0L,(long)i);