diff --git a/Configure b/Configure index e2d047602601765e1e560553b018983e8ed4e724..66b1d84ee1f19275f1dac63fc963d7de3c68291e 100755 --- a/Configure +++ b/Configure @@ -97,6 +97,7 @@ my %table=( "debug-ben-debug", "gcc:-DBN_DEBUG -DREF_CHECK -DCRYPTO_MDEBUG -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe:(unknown):::::", "debug-ben-strict", "gcc:-DBN_DEBUG -DREF_CHECK -DCRYPTO_MDEBUG -DCONST_STRICT -O2 -Wall -Wshadow -Werror -Wpointer-arith -Wcast-qual -Wwrite-strings -pipe:(unknown):::::", "debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall:(unknown)::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_elf_asm", +"debug-bodo", "gcc:-DL_ENDIAN -O3 -g -m486 -Wall:-D_REENTRANT::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_elf_asm", "dist", "cc:-O:(unknown):::::", # Basic configs that should work on any box diff --git a/ssl/ssl_sess.c b/ssl/ssl_sess.c index e918d9854f19a82a2265de1c088c89f23cdb3cc8..97c7f3325199ae3ab9bc7bfa9b62ff80baf04d7b 100644 --- a/ssl/ssl_sess.c +++ b/ssl/ssl_sess.c @@ -203,8 +203,9 @@ int ssl_get_prev_session(SSL *s, unsigned char *session_id, int len) { CRYPTO_r_lock(CRYPTO_LOCK_SSL_CTX); ret=(SSL_SESSION *)lh_retrieve(s->ctx->sessions,(char *)&data); - /* don't allow other threads to steal it: */ - CRYPTO_add(&ret->references,1,CRYPTO_LOCK_SSL_SESSION); + if (ret != NULL) + /* don't allow other threads to steal it: */ + CRYPTO_add(&ret->references,1,CRYPTO_LOCK_SSL_SESSION); CRYPTO_r_unlock(CRYPTO_LOCK_SSL_CTX); }