Module Name:    src
Committed By:   christos
Date:           Mon Oct  8 14:03:09 UTC 2012

Modified Files:
        src/external/bsd/wpa/dist/src/eap_server: eap_server_tls_common.c

Log Message:
EXP-TLS server: Fix TLS Message Length validation:

    http://w1.fi/gitweb/gitweb.cgi?p=hostap.git;a=commitdiff;\
    h=586c446e0ff42ae00315b014924ec669023bd8de

http://www.pre-cert.de/advisories/PRE-SA-2012-07.txt


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.2 -r1.2 \
    src/external/bsd/wpa/dist/src/eap_server/eap_server_tls_common.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/bsd/wpa/dist/src/eap_server/eap_server_tls_common.c
diff -u src/external/bsd/wpa/dist/src/eap_server/eap_server_tls_common.c:1.1.1.2 src/external/bsd/wpa/dist/src/eap_server/eap_server_tls_common.c:1.2
--- src/external/bsd/wpa/dist/src/eap_server/eap_server_tls_common.c:1.1.1.2	Sun Oct  7 19:47:03 2012
+++ src/external/bsd/wpa/dist/src/eap_server/eap_server_tls_common.c	Mon Oct  8 10:03:09 2012
@@ -223,6 +223,12 @@ static int eap_server_tls_process_fragme
 				   " over 64 kB)");
 			return -1;
 		}
+		if (len > message_length) {
+			wpa_printf(MSG_INFO, "SSL: Too much data (%zu bytes) "
+				   "in first fragment of frame (TLS Message "
+				   "Length %u bytes)", len, message_length);
+			return -1;
+		}
 
 		data->tls_in = wpabuf_alloc(message_length);
 		if (data->tls_in == NULL) {

Reply via email to