summaryrefslogtreecommitdiffstats
path: root/ssl
diff options
context:
space:
mode:
authorBodo Möller <bodo@openssl.org>2008-08-13 19:45:06 +0000
committerBodo Möller <bodo@openssl.org>2008-08-13 19:45:06 +0000
commit1cbf663a6c89dcf8f7706d30a8bae675e2e0199a (patch)
tree3eb3113393ea476cd756a99178c681fd8db54883 /ssl
parent9be8035b11ba781e513f31241a34ac2bfd406d93 (diff)
sanity check
PR: 1679
Diffstat (limited to 'ssl')
-rw-r--r--ssl/s3_pkt.c7
-rw-r--r--ssl/ssl.h1
-rw-r--r--ssl/ssl_err.c1
3 files changed, 9 insertions, 0 deletions
diff --git a/ssl/s3_pkt.c b/ssl/s3_pkt.c
index 07dd4b23d5..7593ad9195 100644
--- a/ssl/s3_pkt.c
+++ b/ssl/s3_pkt.c
@@ -1302,6 +1302,13 @@ int ssl3_do_change_cipher_spec(SSL *s)
if (s->s3->tmp.key_block == NULL)
{
+ if (s->session == NULL)
+ {
+ /* might happen if dtls1_read_bytes() calls this */
+ SSLerr(SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC,SSL_R_CCS_RECEIVED_EARLY);
+ return (0);
+ }
+
s->session->cipher=s->s3->tmp.new_cipher;
if (!s->method->ssl3_enc->setup_key_block(s)) return(0);
}
diff --git a/ssl/ssl.h b/ssl/ssl.h
index af6702030b..ab13f0ddc4 100644
--- a/ssl/ssl.h
+++ b/ssl/ssl.h
@@ -1822,6 +1822,7 @@ void ERR_load_SSL_strings(void);
#define SSL_F_SSL3_CONNECT 132
#define SSL_F_SSL3_CTRL 213
#define SSL_F_SSL3_CTX_CTRL 133
+#define SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC 292
#define SSL_F_SSL3_ENC 134
#define SSL_F_SSL3_GENERATE_KEY_BLOCK 238
#define SSL_F_SSL3_GET_CERTIFICATE_REQUEST 135
diff --git a/ssl/ssl_err.c b/ssl/ssl_err.c
index a93cc4c674..e8bfd830f9 100644
--- a/ssl/ssl_err.c
+++ b/ssl/ssl_err.c
@@ -138,6 +138,7 @@ static ERR_STRING_DATA SSL_str_functs[]=
{ERR_FUNC(SSL_F_SSL3_CONNECT), "SSL3_CONNECT"},
{ERR_FUNC(SSL_F_SSL3_CTRL), "SSL3_CTRL"},
{ERR_FUNC(SSL_F_SSL3_CTX_CTRL), "SSL3_CTX_CTRL"},
+{ERR_FUNC(SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC), "SSL3_DO_CHANGE_CIPHER_SPEC"},
{ERR_FUNC(SSL_F_SSL3_ENC), "SSL3_ENC"},
{ERR_FUNC(SSL_F_SSL3_GENERATE_KEY_BLOCK), "SSL3_GENERATE_KEY_BLOCK"},
{ERR_FUNC(SSL_F_SSL3_GET_CERTIFICATE_REQUEST), "SSL3_GET_CERTIFICATE_REQUEST"},