提交 7d95ff76 编写于 作者: B Bodo Möller

Remove silly test for b->references at the end of BIO_write:

If some other thread deletes the BIO that one thread needs for
BIO_write, then there's a lot of trouble anyway; there's
nothing special about calling the callback.
上级 affadbef
......@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册