Skip to content

Commit

Permalink
Improve SSL version identification.
Browse files Browse the repository at this point in the history
Use a runtime check rather than a compile time check, patch
contributed by Faidon Liambotis.

Include development and beta versions in the checks (the status
nibble).
  • Loading branch information
Linus Nordberg committed Nov 19, 2010
1 parent 3f8c5ea commit c8b11e6
Showing 1 changed file with 10 additions and 9 deletions.
19 changes: 10 additions & 9 deletions tlscommon.c
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,7 @@ static int tlsaddcacrl(SSL_CTX *ctx, struct tls *conf) {
static SSL_CTX *tlscreatectx(uint8_t type, struct tls *conf) {
SSL_CTX *ctx = NULL;
unsigned long error;
long sslversion = SSLeay();

switch (type) {
#ifdef RADPROT_TLS
Expand All @@ -227,15 +228,15 @@ static SSL_CTX *tlscreatectx(uint8_t type, struct tls *conf) {
debug(DBG_ERR, "tlscreatectx: Error initialising SSL/TLS in TLS context %s", conf->name);
return NULL;
}
#if OPENSSL_VERSION_NUMBER < 0x0090810f \
|| (OPENSSL_VERSION_NUMBER >= 0x1000000f \
&& OPENSSL_VERSION_NUMBER < 0x1000002f)
debug(DBG_WARN, "%s: OpenSSL seems to be of a version with a "
"certain security critical bug (fixed in OpenSSL 0.9.8p and "
"1.0.0b). Disabling OpenSSL session caching for context %p.",
__func__, ctx);
SSL_CTX_set_session_cache_mode(ctx, SSL_SESS_CACHE_OFF);
#endif

if (sslversion < 0x00908100L ||
(sslversion >= 0x10000000L && sslversion < 0x10000020L)) {
debug(DBG_WARN, "%s: %s seems to be of a version with a "
"certain security critical bug (fixed in OpenSSL 0.9.8p and "
"1.0.0b). Disabling OpenSSL session caching for context %p.",
__func__, SSLeay_version(SSLEAY_VERSION), ctx);
SSL_CTX_set_session_cache_mode(ctx, SSL_SESS_CACHE_OFF);
}

if (conf->certkeypwd) {
SSL_CTX_set_default_passwd_cb_userdata(ctx, conf->certkeypwd);
Expand Down

0 comments on commit c8b11e6

Please sign in to comment.