[PATCH 4/4] arm64: Fix some issues with zImage _probe()

Pingfan Liu piliu at redhat.com
Thu May 4 20:10:45 PDT 2023


On Fri, May 5, 2023 at 12:44 AM Jeremy Linton <jeremy.linton at arm.com> wrote:
>
> Current compilers note that fname will be null while
> attempting to print failures from strdup().
>
> Further fix a memory leak caused by kernel_uncompressed_buf
> never being used/freed before the allocated block is replaced
> by the one returned by slurp_decompress_file().
>
> Signed-off-by: Jeremy Linton <jeremy.linton at arm.com>
> ---
>  kexec/arch/arm64/kexec-zImage-arm64.c | 13 +------------
>  1 file changed, 1 insertion(+), 12 deletions(-)
>
> diff --git a/kexec/arch/arm64/kexec-zImage-arm64.c b/kexec/arch/arm64/kexec-zImage-arm64.c
> index 6ee82ff..3eb1ad8 100644
> --- a/kexec/arch/arm64/kexec-zImage-arm64.c
> +++ b/kexec/arch/arm64/kexec-zImage-arm64.c
> @@ -55,8 +55,7 @@ int zImage_arm64_probe(const char *kernel_buf, off_t kernel_size)
>         }
>
>         if (!(fname = strdup(FILENAME_IMAGE))) {
> -               dbgprintf("%s: Can't duplicate strings %s\n", __func__,
> -                               fname);
> +               dbgprintf("%s: Can't duplicate strings\n", __func__);
>                 return -1;
>         }
>
> @@ -67,15 +66,6 @@ int zImage_arm64_probe(const char *kernel_buf, off_t kernel_size)
>                 goto fail_mkstemp;
>         }
>
> -       kernel_uncompressed_buf =
> -               (char *) calloc(kernel_size, sizeof(off_t));
> -       if (!kernel_uncompressed_buf) {
> -               dbgprintf("%s: Can't calloc %ld bytes\n",
> -                               __func__, kernel_size);
> -               ret= -ENOMEM;
> -               goto fail_calloc;
> -       }
> -
>         /* slurp in the input kernel */
>         dbgprintf("%s: ", __func__);
>         kernel_uncompressed_buf = slurp_decompress_file(kernel_buf,
> @@ -128,7 +118,6 @@ int zImage_arm64_probe(const char *kernel_buf, off_t kernel_size)
>  fail_bad_header:
>         free(kernel_uncompressed_buf);
>
> -fail_calloc:
>         if (fd >= 0)
>                 close(fd);
>
> --
> 2.40.0
>
Reviewed-by: Pingfan Liu <piliu at redhat.com>




More information about the kexec mailing list