1 |
diff -up openssl-fips-0.9.8e/ssl/s23_srvr.c.tlsver openssl-fips-0.9.8e/ssl/s23_srvr.c |
2 |
--- openssl-fips-0.9.8e/ssl/s23_srvr.c.tlsver 2007-03-22 01:39:13.000000000 +0100 |
3 |
+++ openssl-fips-0.9.8e/ssl/s23_srvr.c 2011-04-04 15:36:45.000000000 +0200 |
4 |
@@ -315,7 +315,7 @@ int ssl23_get_client_hello(SSL *s) |
5 |
(p[1] == SSL3_VERSION_MAJOR) && |
6 |
(p[5] == SSL3_MT_CLIENT_HELLO) && |
7 |
((p[3] == 0 && p[4] < 5 /* silly record length? */) |
8 |
- || (p[9] == p[1]))) |
9 |
+ || (p[9] >= p[1]))) |
10 |
{ |
11 |
/* |
12 |
* SSLv3 or tls1 header |
13 |
@@ -339,6 +339,13 @@ int ssl23_get_client_hello(SSL *s) |
14 |
v[1] = TLS1_VERSION_MINOR; |
15 |
#endif |
16 |
} |
17 |
+ /* if major version number > 3 set minor to a value |
18 |
+ * which will use the highest version 3 we support. |
19 |
+ * If TLS 2.0 ever appears we will need to revise |
20 |
+ * this.... |
21 |
+ */ |
22 |
+ else if (p[9] > SSL3_VERSION_MAJOR) |
23 |
+ v[1]=0xff; |
24 |
else |
25 |
v[1]=p[10]; /* minor version according to client_version */ |
26 |
if (v[1] >= TLS1_VERSION_MINOR) |