kc3-lang/libevent/bufferevent_openssl.c

Branch :


Log

Author Commit Date CI Message
3d1a7a1d 2019-02-26 12:33:49 Don't loose top error in SSL Closes: #775 (cherry-picked) (cherry picked from commit a30d6d85219ea80c16df6da4f6a9430254e5a0da)
e66078a0 2019-01-29 21:12:33 Eliminate fd conversion warnings and introduce EVUTIL_INVALID_SOCKET (windows) windows has intptr_t instead of regular int. Also tt_fd_op() had been introduced, since we cannot use tt_int_op() for comparing fd, since it is not always int. (cherry picked from commit b29207dceee33832bb28ab103a833df6a2fd29d3)
83275459 2018-10-27 18:29:57 be_openssl: drop close_flag parameter of the BIO_new_bufferevent() (cherry picked from commit 474d72aeac818198737aa7cb009578c464db11ca)
e86ccfe5 2018-10-27 18:35:08 be_openssl: avoid leaking of SSL structure From nmathewson/Libevent#83 by @fancycode: There are a few code paths where the passed SSL object is not released in error cases, even if BEV_OPT_CLOSE_ON_FREE is passed as option while for others it is released. That way it's impossible for the caller to know it he has to free it on errors himself or not. Line numbers are from "bufferevent_openssl.c" in 911abf3: L1414 ("underlying == NULL" passed) L1416 (bio could not be created) L1446 (different fd passed) L1325 (both underlying and fd passed) L1328 (out-of-memory) L1333 ("bufferevent_init_common_" failed) In all error cases after the "bufferevent_ops_openssl" has been assigned, the option is evaluated on "bufferevent_free" (L1399) and the SSL object released (L1226). Fixes: nmathewson/Libevent#83 (cherry picked from commit acf09c00e2825420cc4ff801518e4ecfe2b31a03)
00761b43 2018-05-25 18:07:28 fix spelling mistakes Closes: nmathewson/Libevent#162 (cherry picked from commit 0789bc5220af6eaa9b483afcd1405be6f01d2187)
01bc36c1 2017-11-22 10:33:15 Add missing includes into openssl-compat.h Before it depends from the caller #include appropriate headers (at least for OPENSSL_VERSION_NUMBER), but let's make it independent. Fixes: #574 (cherry picked from commit c2c08e0203da93938fe35234fa3a1be4d1c3c2e1)
29b7a516 2017-04-20 18:03:50 Explicitly call SSL_clear when reseting the fd. If reconnecting the via BEV_CTRL_SET_FD, bufferevent_openssl.c expects OpenSSL to reuse the configuration state in the SSL object but retain connection state. This corresponds to the SSL_clear API. The code currently only calls SSL_set_connect_state or SSL_set_accept_state. Due to a quirk in OpenSSL, doing this causes the handshake to implicitly SSL_clear the next time it is entered. However, this, in the intervening time, leaves the SSL object in an odd state as the connection state has not been dropped yet. This behavior also does not appear to be documented by OpenSSL. Instead, call SSL_clear explicitly: https://www.openssl.org/docs/manmaster/man3/SSL_clear.html (cherry picked from commit c6c74ce2652fd02527a1212e36cbfd788962132a)
56faf02b 2017-04-13 14:58:13 bufferevent: refactor to use type check macros (cherry picked from commit 92cc0b9c3db38088f79c5d1e432c429fbc366968)
89396767 2016-12-07 02:53:07 be_openssl: Fix writing into filted openssl bufferevent after connected The main problems was due to when bufferevent_openssl has underlying (i.e. created with bufferevent_openssl_filter_new()) some events was disabled/suspended, while with openssl, READ can require WRITE and vice-versa hence this issues. The BEV_CTRL_GET_FD hunk to fix http subsystem, since it depends from what bufferevent_getfd() returns. Fixes: #428 Fixes: ssl/bufferevent_filter_write_after_connect Fixes: http/https_filter_chunk_out Fixes: da52933550fd4736aa1c213b6de497e2ffc31e34 ("be_openssl: don't call do_write() directly from outbuf_cb")
32adf434 2016-12-07 01:48:54 be_openssl: make be_openssl_set_fd() static (no prototype required)