diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2021-05-12 13:02:48 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-05-12 14:30:00 -0700 |
commit | 832ce924b1a14e139e184a6da9f5a69a5e47b256 (patch) | |
tree | 18104eb341fbf3aadabae25554797b9147bd259b | |
parent | 4a64541f2cebef54ea8d9f53ac5067328b8e02d8 (diff) | |
download | lwn-832ce924b1a14e139e184a6da9f5a69a5e47b256.tar.gz lwn-832ce924b1a14e139e184a6da9f5a69a5e47b256.zip |
chelsio/chtls: unlock on error in chtls_pt_recvmsg()
This error path needs to release some memory and call release_sock(sk);
before returning.
Fixes: 6919a8264a32 ("Crypto/chtls: add/delete TLS header in driver")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c b/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c index 188d871f6b8c..c320cc8ca68d 100644 --- a/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c +++ b/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c @@ -1564,8 +1564,10 @@ found_ok_skb: cerr = put_cmsg(msg, SOL_TLS, TLS_GET_RECORD_TYPE, sizeof(thdr->type), &thdr->type); - if (cerr && thdr->type != TLS_RECORD_TYPE_DATA) - return -EIO; + if (cerr && thdr->type != TLS_RECORD_TYPE_DATA) { + copied = -EIO; + break; + } /* don't send tls header, skip copy */ goto skip_copy; } |