diff mbox series

[net,2/3] tls: return -EBUSY if crypto_info is already set

Message ID ff064374eaddc774aacfef413ef56db1d525934f.1516114791.git.sd@queasysnail.net
State Accepted, archived
Delegated to: David Miller
Headers show
Series [net,1/3] tls: fix sw_ctx leak | expand

Commit Message

Sabrina Dubroca Jan. 16, 2018, 3:04 p.m. UTC
do_tls_setsockopt_tx returns 0 without doing anything when crypto_info
is already set. Silent failure is confusing for users.

Fixes: 3c4d7559159b ("tls: kernel TLS support")
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
---
 net/tls/tls_main.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

David Miller Jan. 17, 2018, 9:16 p.m. UTC | #1
From: Sabrina Dubroca <sd@queasysnail.net>
Date: Tue, 16 Jan 2018 16:04:27 +0100

> do_tls_setsockopt_tx returns 0 without doing anything when crypto_info
> is already set. Silent failure is confusing for users.
> 
> Fixes: 3c4d7559159b ("tls: kernel TLS support")
> Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>

Applied.
diff mbox series

Patch

diff --git a/net/tls/tls_main.c b/net/tls/tls_main.c
index e07ee3ae0023..cdaaa9b8e84d 100644
--- a/net/tls/tls_main.c
+++ b/net/tls/tls_main.c
@@ -367,8 +367,10 @@  static int do_tls_setsockopt_tx(struct sock *sk, char __user *optval,
 
 	crypto_info = &ctx->crypto_send;
 	/* Currently we don't support set crypto info more than one time */
-	if (TLS_CRYPTO_INFO_READY(crypto_info))
+	if (TLS_CRYPTO_INFO_READY(crypto_info)) {
+		rc = -EBUSY;
 		goto out;
+	}
 
 	rc = copy_from_user(crypto_info, optval, sizeof(*crypto_info));
 	if (rc) {