From 4091141368654d45d6b4810a91acf113325f4fc5 Mon Sep 17 00:00:00 2001
From: Paul Bakker
Date: Mon, 7 Jul 2014 15:30:20 +0200
Subject: [PATCH] Add a length check in ssl_derive_keys()
---
library/ssl_tls.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index 562f632a92..2ee46f96f8 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -526,6 +526,12 @@ int ssl_derive_keys( ssl_context *ssl )
transform->keylen, transform->minlen, transform->ivlen,
transform->maclen ) );
+ if( transform->maclen > sizeof transform->mac_enc )
+ {
+ SSL_DEBUG_MSG( 1, ( "should never happen" ) );
+ return( POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE );
+ }
+
/*
* Finally setup the cipher contexts, IVs and MAC secrets.
*/