aboutsummaryrefslogtreecommitdiff
path: root/ssl/s3_clnt.c
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2009-12-01 17:42:15 +0000
committerDr. Stephen Henson <steve@openssl.org>2009-12-01 17:42:15 +0000
commit499684404ccf27b261cd72770c068fee4ea6f369 (patch)
tree2015a2ec152e195f665cbadf663bc9324322081b /ssl/s3_clnt.c
parent606c46fb6f65424ac6eac456f4390a7d87a492b4 (diff)
downloadopenssl-499684404ccf27b261cd72770c068fee4ea6f369.zip
openssl-499684404ccf27b261cd72770c068fee4ea6f369.tar.gz
openssl-499684404ccf27b261cd72770c068fee4ea6f369.tar.bz2
PR: 2115
Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de> Approved by: steve@openssl.org Add Renegotiation extension to DTLS, fix DTLS ClientHello processing bug.
Diffstat (limited to 'ssl/s3_clnt.c')
-rw-r--r--ssl/s3_clnt.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/ssl/s3_clnt.c b/ssl/s3_clnt.c
index 35583ef..dfd8bf2 100644
--- a/ssl/s3_clnt.c
+++ b/ssl/s3_clnt.c
@@ -915,7 +915,7 @@ int ssl3_get_server_hello(SSL *s)
#ifndef OPENSSL_NO_TLSEXT
/* TLS extensions*/
- if (s->version > SSL3_VERSION)
+ if (s->version > SSL3_VERSION && s->version != DTLS1_VERSION && s->version != DTLS1_BAD_VER)
{
if (!ssl_parse_serverhello_tlsext(s,&p,d,n, &al))
{
@@ -929,6 +929,17 @@ int ssl3_get_server_hello(SSL *s)
goto err;
}
}
+
+ /* DTLS extensions */
+ if (s->version == DTLS1_VERSION || s->version == DTLS1_BAD_VER)
+ {
+ if (!ssl_parse_serverhello_dtlsext(s,&p,d,n, &al))
+ {
+ /* 'al' set by ssl_parse_serverhello_dtlsext */
+ SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO,SSL_R_PARSE_TLSEXT);
+ goto f_err;
+ }
+ }
#endif
if (p != (d+n))