| From bb674a4d4de1032837fcbf860a63939e66f0b7ad Mon Sep 17 00:00:00 2001 |
| From: Zhihao Cheng <chengzhihao1@huawei.com> |
| Date: Tue, 29 Sep 2020 20:45:30 +0800 |
| Subject: ubifs: Don't parse authentication mount options in remount process |
| |
| From: Zhihao Cheng <chengzhihao1@huawei.com> |
| |
| commit bb674a4d4de1032837fcbf860a63939e66f0b7ad upstream. |
| |
| There is no need to dump authentication options while remounting, |
| because authentication initialization can only be doing once in |
| the first mount process. Dumping authentication mount options in |
| remount process may cause memory leak if UBIFS has already been |
| mounted with old authentication mount options. |
| |
| Signed-off-by: Zhihao Cheng <chengzhihao1@huawei.com> |
| Cc: <stable@vger.kernel.org> # 4.20+ |
| Fixes: d8a22773a12c6d7 ("ubifs: Enable authentication support") |
| Reviewed-by: Sascha Hauer <s.hauer@pengutronix.de> |
| Signed-off-by: Richard Weinberger <richard@nod.at> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| fs/ubifs/super.c | 18 ++++++++++++------ |
| 1 file changed, 12 insertions(+), 6 deletions(-) |
| |
| --- a/fs/ubifs/super.c |
| +++ b/fs/ubifs/super.c |
| @@ -1110,14 +1110,20 @@ static int ubifs_parse_options(struct ub |
| break; |
| } |
| case Opt_auth_key: |
| - c->auth_key_name = kstrdup(args[0].from, GFP_KERNEL); |
| - if (!c->auth_key_name) |
| - return -ENOMEM; |
| + if (!is_remount) { |
| + c->auth_key_name = kstrdup(args[0].from, |
| + GFP_KERNEL); |
| + if (!c->auth_key_name) |
| + return -ENOMEM; |
| + } |
| break; |
| case Opt_auth_hash_name: |
| - c->auth_hash_name = kstrdup(args[0].from, GFP_KERNEL); |
| - if (!c->auth_hash_name) |
| - return -ENOMEM; |
| + if (!is_remount) { |
| + c->auth_hash_name = kstrdup(args[0].from, |
| + GFP_KERNEL); |
| + if (!c->auth_hash_name) |
| + return -ENOMEM; |
| + } |
| break; |
| case Opt_ignore: |
| break; |