solanum/librb
Aaron Jones add3f90b9f
openssl: Avoid use-after-free when rehashing fails to load new files
Commit cf12678 introduced a fix for issue #186 by freeing the old SSL_CTX
structure before constructing a new one, which could disconnect existing
clients otherwise.

Unfortunately, the freeing is done first, which means that if setting up
a new structure fails for any reason, there will be no usable structures
left, but they are still referenced.

This fix moves the freeing to the end of the function, using intermediate
new variables in the meantime. This problem was discovered while testing
against OpenSSL 1.1.0 RC6.
2016-08-12 13:34:13 +00:00
..
include librb: remove one more VMS detritius 2016-06-19 21:47:59 -05:00
src openssl: Avoid use-after-free when rehashing fails to load new files 2016-08-12 13:34:13 +00:00
acinclude.m4 Remove the rest of the SVN id tags 2016-03-23 20:13:12 -04:00
autogen.sh *sigh* comment these out until travis is fixed. 2016-04-10 17:12:42 -05:00
configure.ac librb: fix mbedtls library order 2016-04-23 22:13:03 +01:00
COPYING rename libratbox to librb, since its pretty modified anyway 2016-03-06 02:30:20 -06:00
CREDITS librb: whoops, didn't realise this was needed... :x 2016-03-06 13:30:56 -06:00
install-sh Add these for now until travis actually gets their shit together. 2016-04-10 17:07:33 -05:00
librb.pc.in rename libratbox to librb, since its pretty modified anyway 2016-03-06 02:30:20 -06:00
Makefile.am Properly clean up build artifacts. 2016-04-09 04:55:57 -05:00
README.md update librb README to explain the namechange 2016-03-06 02:33:48 -06:00
TODO rename libratbox to librb, since its pretty modified anyway 2016-03-06 02:30:20 -06:00

librb

This is based on libratbox, the common runtime support code in ircd-ratbox. It has significant modifications and is no longer compatible with libratbox itself (nor can be used as a dropin replacement), so we renamed it.

original libratbox notes

  1. Most of this code isn't anywhere near threadsafe at this point. Don't hold your breath on this either.
  2. The linebuf code is designed to deal with pretty much 512 bytes per line and that is it. Anything beyond that length unless in raw mode, gets discard. For some non-irc purposes, this can be a problem, but for ircd stuff its fine.
  3. The helper code when transmitting data between helpers, the same 512 byte limit applies there as we recycle the linebuf code for this.