summaryrefslogtreecommitdiffstats
path: root/ssl/s3_clnt.c
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2008-04-29 17:22:01 +0000
committerDr. Stephen Henson <steve@openssl.org>2008-04-29 17:22:01 +0000
commit8831eb7624992ded000310586c99cf6f226a6e19 (patch)
treef4b69a5784651f99e9a6c29d5c250563b1ad0b0c /ssl/s3_clnt.c
parent3c8f315021499e1a7289a16e167a134e62c88297 (diff)
Do not permit stateless session resumption is session IDs mismatch.
Diffstat (limited to 'ssl/s3_clnt.c')
-rw-r--r--ssl/s3_clnt.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/ssl/s3_clnt.c b/ssl/s3_clnt.c
index 7b3eb7ab02..648488b063 100644
--- a/ssl/s3_clnt.c
+++ b/ssl/s3_clnt.c
@@ -2686,7 +2686,11 @@ static int ssl3_check_finished(SSL *s)
{
int ok;
long n;
- if (!s->session->tlsext_tick)
+ /* If we have no ticket or session ID is non-zero length (a match of
+ * a non-zero session length would never reach here) it cannot be a
+ * resumed session.
+ */
+ if (!s->session->tlsext_tick || s->session->session_id_length)
return 1;
/* this function is called when we really expect a Certificate
* message, so permit appropriate message length */