Merge remote-tracking branch 'public/pr/2113' into mbedtls-2.1-proposed
diff --git a/ChangeLog b/ChangeLog
index 6268dfb..6e79644 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -9,6 +9,9 @@
      invalidated keys of a lifetime of less than a 1s. Fixes #1968.
    * Fix potential build failures related to the 'apidoc' target, introduced
      in the previous patch release. Found by Robert Scheck. #390 #391
+   * Fix a bug in the record decryption routine ssl_decrypt_buf()
+     which lead to accepting properly authenticated but improperly
+     padded records in case of CBC ciphersuites using Encrypt-then-MAC.
 
 Changes
    * "make apidoc" now generates the documentation for the current
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index 8091795..5656756 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -2110,13 +2110,13 @@
             correct = 0;
         }
         auth_done++;
-
-        /*
-         * Finally check the correct flag
-         */
-        if( correct == 0 )
-            return( MBEDTLS_ERR_SSL_INVALID_MAC );
     }
+
+    /*
+     * Finally check the correct flag
+     */
+    if( correct == 0 )
+        return( MBEDTLS_ERR_SSL_INVALID_MAC );
 #endif /* SSL_SOME_MODES_USE_MAC */
 
     /* Make extra sure authentication was performed, exactly once */