Always defer bufferevent_openssl callbacks to avoid reentrant invocations

This commit is contained in:
Nick Mathewson 2010-09-27 13:02:11 -04:00
parent 89e8f31c42
commit b7ae108e18

View File

@ -1710,12 +1710,16 @@ tor_tls_init_bufferevent(tor_tls_t *tls, struct bufferevent *bufev_in,
bufferevent_free(bufev_in);
}
tls->state = TOR_TLS_ST_BUFFEREVENT;
/* Current versions (as of 2.0.7-rc) of Libevent need to defer
* bufferevent_openssl callbacks, or else our callback functions will
* get called reentrantly, which is bad for us.
*/
out = bufferevent_openssl_socket_new(tor_libevent_get_base(),
socket,
tls->ssl,
state,
0);
//BEV_OPT_DEFER_CALLBACKS);
BEV_OPT_DEFER_CALLBACKS);
#endif
return out;
}