db12df5c16
OpenSSL uses `unsigned long' type for its error codes, so that's what (lib)ratbox used to store the error values. Unfortunately, MbedTLS uses int, and its error codes are negative. On machines where `int' and `long' are the same size, this could result in storing a truncated error code. This patch inverts the sign bit on error codes and then casts them to unsigned long for storage. MbedTLS itself (specifically, `mbedtls_strerror()') will function properly with negative or positive input values. It even converts negative input values to positive before checking them against the list of known error codes! See also: `library/error.c' in the MbedTLS 2.1+ distribution. |
||
---|---|---|
.. | ||
include | ||
src | ||
.indent.pro | ||
acinclude.m4 | ||
aclocal.m4 | ||
ChangeLog | ||
compile | ||
config.guess | ||
config.sub | ||
configure | ||
configure.ac | ||
COPYING | ||
CREDITS | ||
depcomp | ||
INSTALL | ||
install-sh | ||
libratbox.pc.in | ||
ltmain.sh | ||
Makefile.am | ||
Makefile.in | ||
missing | ||
README | ||
TODO |
This is libircd from ircd-ratbox. A few notes about this library: 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.