aboutsummaryrefslogtreecommitdiffstats
path: root/src/libtls/tls_fragmentation.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2012-08-09 12:10:41 +0200
committerMartin Willi <martin@revosec.ch>2012-08-09 12:10:41 +0200
commit02cabd0f26d2fc17a3967fab2afe52fb92080457 (patch)
treeb1d249d95c342719d75b53be3a76317d3acfc674 /src/libtls/tls_fragmentation.c
parent4e98ca18003964f2511d2ba8258c40f9282535c1 (diff)
downloadstrongswan-02cabd0f26d2fc17a3967fab2afe52fb92080457.tar.bz2
strongswan-02cabd0f26d2fc17a3967fab2afe52fb92080457.tar.xz
Check if TLS handshake received Finished before processing application data
Diffstat (limited to 'src/libtls/tls_fragmentation.c')
-rw-r--r--src/libtls/tls_fragmentation.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/libtls/tls_fragmentation.c b/src/libtls/tls_fragmentation.c
index eb9976884..f2fa77cfd 100644
--- a/src/libtls/tls_fragmentation.c
+++ b/src/libtls/tls_fragmentation.c
@@ -197,6 +197,12 @@ static status_t process_handshake(private_tls_fragmentation_t *this,
static status_t process_application(private_tls_fragmentation_t *this,
bio_reader_t *reader)
{
+ if (!this->handshake->finished(this->handshake))
+ {
+ DBG1(DBG_TLS, "received TLS application data, "
+ "but handshake not finished");
+ return FAILED;
+ }
while (reader->remaining(reader))
{
status_t status;