On Fri, 11 Sep 2026 15:59:11 -0700
Andrew Morton <[email protected]> wrote:

> On Fri, 11 Sep 2026 23:12:56 +0900 "Masami Hiramatsu (Google)" 
> <[email protected]> wrote:
> 
> > Hi,
> > 
> > Here are v2 patches for bootconfig to rejects unexpected config data after
> > null character and other cleanups including tools/bootconfig to consolidate
> > bootconfig initialization with errors, and skipping internal tree sanity
> > check in kernel.
> > 
> > ...
> >
> 
> Thanks, I've updateed mm.git's mm-nonmm-unstable branch to this version,
> 
> > This version removes redundant buffer copy in init_xbc_with_error() [2/4]
> > and moves BOOTCONFIG_FOOTER_SIZE to include/linux/bootconfig.h[4/4].

OK, anyway I'll pick this series to bootconfig/for-next.

Thank you,

> 
> Here's how v2 altered mm.git:
> 
> 
>  include/linux/bootconfig.h |    4 ++++
>  init/main.c                |    2 +-
>  tools/bootconfig/main.c    |   14 +-------------
>  3 files changed, 6 insertions(+), 14 deletions(-)
> 
> --- a/include/linux/bootconfig.h~b
> +++ a/include/linux/bootconfig.h
> @@ -27,6 +27,10 @@ bool __init cmdline_has_extra_options(vo
>  #define BOOTCONFIG_ALIGN     (1 << BOOTCONFIG_ALIGN_SHIFT)
>  #define BOOTCONFIG_ALIGN_MASK        (BOOTCONFIG_ALIGN - 1)
>  
> +/* Bootconfig footer is [size][csum][BOOTCONFIG_MAGIC]. */
> +#define BOOTCONFIG_FOOTER_SIZE       \
> +     (sizeof(uint32_t) * 2 + BOOTCONFIG_MAGIC_LEN)
> +
>  /**
>   * xbc_calc_checksum() - Calculate checksum of bootconfig
>   * @data: Bootconfig data.
> --- a/init/main.c~b
> +++ a/init/main.c
> @@ -278,7 +278,7 @@ static void * __init get_boot_config_fro
>       int i;
>  
>       if (!initrd_end || initrd_end < initrd_start ||
> -         initrd_end - initrd_start < BOOTCONFIG_MAGIC_LEN + 8)
> +         initrd_end - initrd_start < BOOTCONFIG_FOOTER_SIZE)
>               return NULL;
>  
>       data = (char *)initrd_end - BOOTCONFIG_MAGIC_LEN;
> --- a/tools/bootconfig/main.c~b
> +++ a/tools/bootconfig/main.c
> @@ -17,10 +17,6 @@
>  
>  #define pr_err(fmt, ...) fprintf(stderr, fmt, ##__VA_ARGS__)
>  
> -/* Bootconfig footer is [size][csum][BOOTCONFIG_MAGIC]. */
> -#define BOOTCONFIG_FOOTER_SIZE       \
> -     (sizeof(uint32_t) * 2 + BOOTCONFIG_MAGIC_LEN)
> -
>  static void show_xbc_error(const char *data, const char *msg, int pos)
>  {
>       int lin = 1, col, i;
> @@ -44,20 +40,12 @@ static void show_xbc_error(const char *d
>  
>  static int init_xbc_with_error(char *buf, int len)
>  {
> -     char *copy = malloc(len);
>       const char *msg;
>       int ret, pos;
>  
> -     if (!copy)
> -             return -ENOMEM;
> -
> -     memcpy(copy, buf, len);
> -     /* We do not terminate the copy with \0 for sanity checking */
> -
>       ret = xbc_init(buf, len, &msg, &pos);
>       if (ret < 0)
> -             show_xbc_error(copy, msg, pos);
> -     free(copy);
> +             show_xbc_error(buf, msg, pos);
>  
>       return ret;
>  }
> _
> 
> 


-- 
Masami Hiramatsu (Google) <[email protected]>

Reply via email to