Currently, the receive function fails to handle records already
decrypted by the device due to the commit mentioned below.

This commit advances the TLS record sequence number and prepares the context
to handle the next record.

Fixes: fedf201e1296 ("net: tls: Refactor control message handling on recv")
Signed-off-by: Boris Pismenny <[email protected]>
Reviewed-by: Eran Ben Elisha <[email protected]>
---
 net/tls/tls_sw.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/net/tls/tls_sw.c b/net/tls/tls_sw.c
index f515cd7e984e..85da10182d8d 100644
--- a/net/tls/tls_sw.c
+++ b/net/tls/tls_sw.c
@@ -1481,18 +1481,17 @@ static int decrypt_skb_update(struct sock *sk, struct 
sk_buff *skb,
 
                        return err;
                }
-
-               rxm->full_len -= padding_length(ctx, tls_ctx, skb);
-
-               rxm->offset += prot->prepend_size;
-               rxm->full_len -= prot->overhead_size;
-               tls_advance_record_sn(sk, &tls_ctx->rx, version);
-               ctx->decrypted = true;
-               ctx->saved_data_ready(sk);
        } else {
                *zc = false;
        }
 
+       rxm->full_len -= padding_length(ctx, tls_ctx, skb);
+       rxm->offset += prot->prepend_size;
+       rxm->full_len -= prot->overhead_size;
+       tls_advance_record_sn(sk, &tls_ctx->rx, version);
+       ctx->decrypted = true;
+       ctx->saved_data_ready(sk);
+
        return err;
 }
 
-- 
2.12.2

Reply via email to