tls: reset the crypto info if copy_from_user fails
authorBoris Pismenny <borisp@mellanox.com>
Wed, 14 Feb 2018 08:46:07 +0000 (10:46 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 14 Feb 2018 20:05:19 +0000 (15:05 -0500)
copy_from_user could copy some partial information, as a result
TLS_CRYPTO_INFO_READY(crypto_info) could be true while crypto_info is
using uninitialzed data.

This patch resets crypto_info when copy_from_user fails.

fixes: 3c4d7559159b ("tls: kernel TLS support")
Signed-off-by: Boris Pismenny <borisp@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/tls/tls_main.c

index a6c3702e0ddbb96962d9976809d20bdd5d3bf402..c105f86a7ea628dc15996c7c563087be52dae251 100644 (file)
@@ -376,7 +376,7 @@ static int do_tls_setsockopt_tx(struct sock *sk, char __user *optval,
        rc = copy_from_user(crypto_info, optval, sizeof(*crypto_info));
        if (rc) {
                rc = -EFAULT;
-               goto out;
+               goto err_crypto_info;
        }
 
        /* check version */