summaryrefslogtreecommitdiff
path: root/net/tls/tls_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/tls/tls_main.c')
-rw-r--r--net/tls/tls_main.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/net/tls/tls_main.c b/net/tls/tls_main.c
index f3d9dbfa507e..9703636cfc60 100644
--- a/net/tls/tls_main.c
+++ b/net/tls/tls_main.c
@@ -539,8 +539,7 @@ static int do_tls_getsockopt_no_pad(struct sock *sk, char __user *optval,
int __user *optlen)
{
struct tls_context *ctx = tls_get_ctx(sk);
- unsigned int value;
- int err, len;
+ int value, len;
if (ctx->prot_info.version != TLS_1_3_VERSION)
return -EINVAL;
@@ -551,12 +550,12 @@ static int do_tls_getsockopt_no_pad(struct sock *sk, char __user *optval,
return -EINVAL;
lock_sock(sk);
- err = -EINVAL;
+ value = -EINVAL;
if (ctx->rx_conf == TLS_SW || ctx->rx_conf == TLS_HW)
value = ctx->rx_no_pad;
release_sock(sk);
- if (err)
- return err;
+ if (value < 0)
+ return value;
if (put_user(sizeof(value), optlen))
return -EFAULT;
@@ -1142,7 +1141,12 @@ static int __init tls_register(void)
if (err)
return err;
- tls_device_init();
+ err = tls_device_init();
+ if (err) {
+ unregister_pernet_subsys(&tls_proc_ops);
+ return err;
+ }
+
tcp_register_ulp(&tcp_tls_ulp_ops);
return 0;