Re: [PATCH 1/2] binfmt: Use struct_size()

From: Eric W. Biederman
Date: Sun May 28 2023 - 12:33:29 EST


Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> writes:

> Use struct_size() instead of hand-writing it. It is less verbose, more
> robust and more informative.

Acked-by: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx>
Obviously correct transform.

>
> Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx>
> ---
> Compile tested on arm
> ---
> fs/binfmt_elf_fdpic.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c
> index d76ad3d4f676..237ce388d06d 100644
> --- a/fs/binfmt_elf_fdpic.c
> +++ b/fs/binfmt_elf_fdpic.c
> @@ -748,7 +748,6 @@ static int elf_fdpic_map_file(struct elf_fdpic_params *params,
> struct elf32_phdr *phdr;
> unsigned long load_addr, stop;
> unsigned nloads, tmp;
> - size_t size;
> int loop, ret;
>
> /* allocate a load map table */
> @@ -760,8 +759,7 @@ static int elf_fdpic_map_file(struct elf_fdpic_params *params,
> if (nloads == 0)
> return -ELIBBAD;
>
> - size = sizeof(*loadmap) + nloads * sizeof(*seg);
> - loadmap = kzalloc(size, GFP_KERNEL);
> + loadmap = kzalloc(struct_size(loadmap, segs, nloads), GFP_KERNEL);
> if (!loadmap)
> return -ENOMEM;