From d5a3f1f11685af21bd38ffceddcb949b7997cd46 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Thu, 30 Jul 2009 20:40:50 +0000 Subject: [PATCH] Set the SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER flag, and explain why. svn:r1394 --- bufferevent_openssl.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bufferevent_openssl.c b/bufferevent_openssl.c index 5347b03e..dd0b4edc 100644 --- a/bufferevent_openssl.c +++ b/bufferevent_openssl.c @@ -819,6 +819,7 @@ be_openssl_handshakecb(struct bufferevent *bev_base, void *ctx) struct bufferevent_openssl *bev_ssl = ctx; do_handshake(bev_ssl); } + static void be_openssl_handshakeeventcb(evutil_socket_t fd, short what, void *ptr) { @@ -1028,6 +1029,10 @@ bufferevent_openssl_new_impl(struct event_base *base, &bufferevent_ops_openssl, tmp_options) < 0) goto err; + /* Don't explode if we decide to realloc a chunk we're writing from in + * the output buffer. */ + SSL_set_mode(ssl, SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER); + bev_ssl->underlying = underlying; bev_ssl->ssl = ssl; -- 2.50.1