Check for trailing data in key_share extension.
Change-Id: I057e19a9547a14b3950395db4318eaf0da01ec13
Reviewed-on: https://boringssl-review.googlesource.com/9079
Reviewed-by: Steven Valdez <svaldez@google.com>
Reviewed-by: David Benjamin <davidben@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
diff --git a/ssl/t1_lib.c b/ssl/t1_lib.c
index eef0d83..c6697f6 100644
--- a/ssl/t1_lib.c
+++ b/ssl/t1_lib.c
@@ -2037,7 +2037,8 @@
CBS peer_key;
uint16_t group;
if (!CBS_get_u16(contents, &group) ||
- !CBS_get_u16_length_prefixed(contents, &peer_key)) {
+ !CBS_get_u16_length_prefixed(contents, &peer_key) ||
+ CBS_len(contents) != 0) {
*out_alert = SSL_AD_DECODE_ERROR;
return 0;
}
@@ -2073,7 +2074,8 @@
uint16_t group_id;
CBS key_shares;
if (!tls1_get_shared_group(ssl, &group_id) ||
- !CBS_get_u16_length_prefixed(contents, &key_shares)) {
+ !CBS_get_u16_length_prefixed(contents, &key_shares) ||
+ CBS_len(contents) != 0) {
return 0;
}