From: Vinay Kumar Yadav <vinay.ya...@chelsio.com>

[ Upstream commit c271042eb6a031d1333cf57422ec1d20726901ab ]

When tls data skb is pending for Tx and tls alert comes , It
is wrongly overwrite the record type of tls data to tls alert
record type. fix the issue correcting it.

v1->v2:
- Correct submission tree.
- Add fixes tag.

Fixes: 6919a8264a32 ("Crypto/chtls: add/delete TLS header in driver")
Signed-off-by: Vinay Kumar Yadav <vinay.ya...@chelsio.com>
Signed-off-by: David S. Miller <da...@davemloft.net>
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 drivers/crypto/chelsio/chtls/chtls_io.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/crypto/chelsio/chtls/chtls_io.c 
b/drivers/crypto/chelsio/chtls/chtls_io.c
index e1401d9cc756c..2e9acae1cba3b 100644
--- a/drivers/crypto/chelsio/chtls/chtls_io.c
+++ b/drivers/crypto/chelsio/chtls/chtls_io.c
@@ -1052,14 +1052,15 @@ int chtls_sendmsg(struct sock *sk, struct msghdr *msg, 
size_t size)
                                                          &record_type);
                                if (err)
                                        goto out_err;
+
+                               /* Avoid appending tls handshake, alert to tls 
data */
+                               if (skb)
+                                       tx_skb_finalize(skb);
                        }
 
                        recordsz = size;
                        csk->tlshws.txleft = recordsz;
                        csk->tlshws.type = record_type;
-
-                       if (skb)
-                               ULP_SKB_CB(skb)->ulp.tls.type = record_type;
                }
 
                if (!skb || (ULP_SKB_CB(skb)->flags & ULPCB_FLAG_NO_APPEND) ||
-- 
2.25.1



Reply via email to