Thread (9 messages) 9 messages, 5 authors, 2020-10-13

Re: [PATCH] ima: Fix sizeof mismatches

From: Mimi Zohar <zohar@linux.ibm.com>
Date: 2020-10-13 16:17:56
Also in: kernel-janitors, linux-integrity, lkml

On Mon, 2020-10-12 at 19:10 +0100, Colin Ian King wrote:
On 12/10/2020 19:06, Joe Perches wrote:
quoted
On Mon, 2020-10-12 at 13:51 -0400, Mimi Zohar wrote:
quoted
On Wed, 2020-10-07 at 11:27 -0700, Joe Perches wrote:
quoted
On Wed, 2020-10-07 at 12:02 +0100, Colin King wrote:
quoted
An incorrect sizeof is being used, sizeof(*fields) is not correct,
it should be sizeof(**fields). This is not causing a problem since
the size of these is the same. Fix this in the kmalloc_array and
memcpy calls.
[]
quoted
diff --git a/security/integrity/ima/ima_template.c b/security/integrity/ima/ima_template.c
[]
quoted
@@ -216,11 +216,11 @@ int template_desc_init_fields(const char *template_fmt,
 	}
 
 	if (fields && num_fields) {
-		*fields = kmalloc_array(i, sizeof(*fields), GFP_KERNEL);
+		*fields = kmalloc_array(i, sizeof(**fields), GFP_KERNEL);
 		if (*fields == NULL)
 			return -ENOMEM;
 
-		memcpy(*fields, found_fields, i * sizeof(*fields));
+		memcpy(*fields, found_fields, i * sizeof(**fields));
Maybe use kmemdup instead.

	if (fields && num_fields) {
		*fields = kmemdup(found_fields, i * sizeof(**fields), GFP_KERNEL);
		etc...
Thanks, Joe.  Since this patch will be backported, perhaps it would be
better to leave this as a bug fix and upstream other changes
independently.
IMO:

This patch doesn't need need backporting as it doesn't
actually fix anything other than a style defect.

void * and void ** are the same size.
indeed, same size, it's a semantic difference *and* a style fix :-)
Colin, based on Joe's suggestion of using kmemdup and his opinion of
not backporting this change, can I assume you'll address his comments
and re-post v3?

thanks,

Mimi
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help