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]>
