| From ce157716ac50900bc4de123b15980351e6f9b219 Mon Sep 17 00:00:00 2001 |
| From: Aditya Pakki <pakki001@umn.edu> |
| Date: Fri, 14 Feb 2020 12:21:01 -0600 |
| Subject: [PATCH] ecryptfs: replace BUG_ON with error handling code |
| |
| commit 2c2a7552dd6465e8fde6bc9cccf8d66ed1c1eb72 upstream. |
| |
| In crypt_scatterlist, if the crypt_stat argument is not set up |
| correctly, the kernel crashes. Instead, by returning an error code |
| upstream, the error is handled safely. |
| |
| The issue is detected via a static analysis tool written by us. |
| |
| Fixes: 237fead619984 (ecryptfs: fs/Makefile and fs/Kconfig) |
| Signed-off-by: Aditya Pakki <pakki001@umn.edu> |
| Signed-off-by: Tyler Hicks <code@tyhicks.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/fs/ecryptfs/crypto.c b/fs/ecryptfs/crypto.c |
| index 54bfa71ffdad..9a85905ccf98 100644 |
| --- a/fs/ecryptfs/crypto.c |
| +++ b/fs/ecryptfs/crypto.c |
| @@ -310,8 +310,10 @@ static int crypt_scatterlist(struct ecryptfs_crypt_stat *crypt_stat, |
| struct extent_crypt_result ecr; |
| int rc = 0; |
| |
| - BUG_ON(!crypt_stat || !crypt_stat->tfm |
| - || !(crypt_stat->flags & ECRYPTFS_STRUCT_INITIALIZED)); |
| + if (!crypt_stat || !crypt_stat->tfm |
| + || !(crypt_stat->flags & ECRYPTFS_STRUCT_INITIALIZED)) |
| + return -EINVAL; |
| + |
| if (unlikely(ecryptfs_verbosity > 0)) { |
| ecryptfs_printk(KERN_DEBUG, "Key size [%zd]; key:\n", |
| crypt_stat->key_size); |
| -- |
| 2.7.4 |
| |