]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
crypto: chelsio - don't leak information from the stack to userspace
authorColin Ian King <colin.king@canonical.com>
Thu, 5 Apr 2018 16:44:03 +0000 (17:44 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 20 Apr 2018 16:58:31 +0000 (00:58 +0800)
The structure crypto_info contains fields that are not initialized and
only .version is set.  The copy_to_user call is hence leaking information
from the stack to userspace which must be avoided. Fix this by zero'ing
all the unused fields.

Detected by CoverityScan, CID#1467421 ("Uninitialized scalar variable")

Fixes: a08943947873 ("crypto: chtls - Register chtls with net tls")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/chelsio/chtls/chtls_main.c

index 007c45c38fc71e8dca4eb7d77cc8b37cc3056f8f..69f3756eb980a697f4df8fea8323ad4bd48ed2db 100644 (file)
@@ -441,7 +441,7 @@ static int chtls_uld_rx_handler(void *handle, const __be64 *rsp,
 static int do_chtls_getsockopt(struct sock *sk, char __user *optval,
                               int __user *optlen)
 {
-       struct tls_crypto_info crypto_info;
+       struct tls_crypto_info crypto_info = { 0 };
 
        crypto_info.version = TLS_1_2_VERSION;
        if (copy_to_user(optval, &crypto_info, sizeof(struct tls_crypto_info)))