ima: Fix a potential NULL pointer access in ima_restore_measurement_list

commit 11220db412 upstream.

In restore_template_fmt, when kstrdup fails, a non-NULL value will still be
returned, which causes a NULL pointer access in template_desc_init_fields.

Fixes: c7d0936770 ("ima: support restoring multiple template formats")
Cc: stable@kernel.org
Co-developed-by: Jiaming Li <lijiaming30@huawei.com>
Signed-off-by: Jiaming Li <lijiaming30@huawei.com>
Signed-off-by: Huaxin Lu <luhuaxin1@huawei.com>
Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Huaxin Lu 2022-11-03 00:09:49 +08:00 committed by Greg Kroah-Hartman
parent 9944a141e5
commit 3ac71fd8ff
1 changed files with 4 additions and 1 deletions

View File

@ -340,8 +340,11 @@ static struct ima_template_desc *restore_template_fmt(char *template_name)
template_desc->name = ""; template_desc->name = "";
template_desc->fmt = kstrdup(template_name, GFP_KERNEL); template_desc->fmt = kstrdup(template_name, GFP_KERNEL);
if (!template_desc->fmt) if (!template_desc->fmt) {
kfree(template_desc);
template_desc = NULL;
goto out; goto out;
}
spin_lock(&template_list); spin_lock(&template_list);
list_add_tail_rcu(&template_desc->list, &defined_templates); list_add_tail_rcu(&template_desc->list, &defined_templates);