Blame SOURCES/openssl-1.0.2k-long-hello.patch

c05f5d
diff -up openssl-1.0.2k/ssl/s3_srvr.c.long-hello openssl-1.0.2k/ssl/s3_srvr.c
c05f5d
--- openssl-1.0.2k/ssl/s3_srvr.c.long-hello	2017-03-09 17:59:26.000000000 +0100
c05f5d
+++ openssl-1.0.2k/ssl/s3_srvr.c	2017-03-30 09:11:35.639338753 +0200
c05f5d
@@ -899,6 +899,23 @@ int ssl3_send_hello_request(SSL *s)
c05f5d
     return ssl_do_write(s);
c05f5d
 }
c05f5d
 
c05f5d
+/*
c05f5d
+ * Maximum size (excluding the Handshake header) of a ClientHello message,
c05f5d
+ * calculated as follows:
c05f5d
+ *
c05f5d
+ *  2 + # client_version
c05f5d
+ *  32 + # only valid length for random
c05f5d
+ *  1 + # length of session_id
c05f5d
+ *  32 + # maximum size for session_id
c05f5d
+ *  2 + # length of cipher suites
c05f5d
+ *  2^16-2 + # maximum length of cipher suites array
c05f5d
+ *  1 + # length of compression_methods
c05f5d
+ *  2^8-1 + # maximum length of compression methods
c05f5d
+ *  2 + # length of extensions
c05f5d
+ *  2^16-1 # maximum length of extensions
c05f5d
+ */
c05f5d
+#define CLIENT_HELLO_MAX_LENGTH         131396
c05f5d
+
c05f5d
 int ssl3_get_client_hello(SSL *s)
c05f5d
 {
c05f5d
     int i, j, ok, al = SSL_AD_INTERNAL_ERROR, ret = -1, cookie_valid = 0;
c05f5d
@@ -930,7 +947,7 @@ int ssl3_get_client_hello(SSL *s)
c05f5d
                                    SSL3_ST_SR_CLNT_HELLO_B,
c05f5d
                                    SSL3_ST_SR_CLNT_HELLO_C,
c05f5d
                                    SSL3_MT_CLIENT_HELLO,
c05f5d
-                                   SSL3_RT_MAX_PLAIN_LENGTH, &ok;;
c05f5d
+                                   CLIENT_HELLO_MAX_LENGTH, &ok;;
c05f5d
 
c05f5d
     if (!ok)
c05f5d
         return ((int)n);