lib/bootconfig.c | 3 ++- tools/bootconfig/main.c | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-)
Hi Linus,
Bootconfig fixes for v7.0-rc4
- lib/bootconfig: check xbc_init_node() return in override path
Fix to check error code of xbc_init_node() in override value path
in xbc_parse_kv().
- tools/bootconfig: fix fd leak in load_xbc_file() on fstat failure
Fix to close fd in fstat() failure path.
Please pull the latest bootconfig-fixes-v7.0-rc4 tree, which can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
bootconfig-fixes-v7.0-rc4
Tag SHA1: a701749c7ddb8ebc9b7a5cd94118b8365bb107ea
Head SHA1: 3b2c2ab4ceb82af484310c3087541eab00ea288b
Josh Law (2):
lib/bootconfig: check xbc_init_node() return in override path
tools/bootconfig: fix fd leak in load_xbc_file() on fstat failure
----
lib/bootconfig.c | 3 ++-
tools/bootconfig/main.c | 7 +++++--
2 files changed, 7 insertions(+), 3 deletions(-)
---------------------------
diff --git a/lib/bootconfig.c b/lib/bootconfig.c
index 2da049216fe0..e88d0221a826 100644
--- a/lib/bootconfig.c
+++ b/lib/bootconfig.c
@@ -723,7 +723,8 @@ static int __init xbc_parse_kv(char **k, char *v, int op)
if (op == ':') {
unsigned short nidx = child->next;
- xbc_init_node(child, v, XBC_VALUE);
+ if (xbc_init_node(child, v, XBC_VALUE) < 0)
+ return xbc_parse_error("Failed to override value", v);
child->next = nidx; /* keep subkeys */
goto array;
}
diff --git a/tools/bootconfig/main.c b/tools/bootconfig/main.c
index 55d59ed507d5..643f707b8f1d 100644
--- a/tools/bootconfig/main.c
+++ b/tools/bootconfig/main.c
@@ -162,8 +162,11 @@ static int load_xbc_file(const char *path, char **buf)
if (fd < 0)
return -errno;
ret = fstat(fd, &stat);
- if (ret < 0)
- return -errno;
+ if (ret < 0) {
+ ret = -errno;
+ close(fd);
+ return ret;
+ }
ret = load_xbc_fd(fd, buf, stat.st_size);
--
Masami Hiramatsu (Google) <mhiramat@kernel.org>
The pull request you sent on Sat, 21 Mar 2026 17:23:07 +0900: > git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git bootconfig-fixes-v7.0-rc4 has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/55d55b97c7fca1f795029c5aea3335a5d885632e Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
On 2026-03-21, mhiramat@kernel.org wrote:
> Hi Linus,
>
> Bootconfig fixes for v7.0-rc4
>
> - lib/bootconfig: check xbc_init_node() return in override path
> Fix to check error code of xbc_init_node() in override value path
> in xbc_parse_kv().
> - tools/bootconfig: fix fd leak in load_xbc_file() on fstat failure
> Fix to close fd in fstat() failure path.
>
>
> Please pull the latest bootconfig-fixes-v7.0-rc4 tree, which can be found at:
>
>
> git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
> bootconfig-fixes-v7.0-rc4
>
> Tag SHA1: a701749c7ddb8ebc9b7a5cd94118b8365bb107ea
> Head SHA1: 3b2c2ab4ceb82af484310c3087541eab00ea288b
>
>
> Josh Law (2):
> lib/bootconfig: check xbc_init_node() return in override path
> tools/bootconfig: fix fd leak in load_xbc_file() on fstat failure
>
> ----
> lib/bootconfig.c | 3 ++-
> tools/bootconfig/main.c | 7 +++++--
> 2 files changed, 7 insertions(+), 3 deletions(-)
> ---------------------------
> diff --git a/lib/bootconfig.c b/lib/bootconfig.c
> index 2da049216fe0..e88d0221a826 100644
> --- a/lib/bootconfig.c
> +++ b/lib/bootconfig.c
> @@ -723,7 +723,8 @@ static int __init xbc_parse_kv(char **k, char *v, int op)
> if (op == ':') {
> unsigned short nidx = child->next;
>
> - xbc_init_node(child, v, XBC_VALUE);
> + if (xbc_init_node(child, v, XBC_VALUE) < 0)
> + return xbc_parse_error("Failed to override value", v);
> child->next = nidx; /* keep subkeys */
> goto array;
> }
> diff --git a/tools/bootconfig/main.c b/tools/bootconfig/main.c
> index 55d59ed507d5..643f707b8f1d 100644
> --- a/tools/bootconfig/main.c
> +++ b/tools/bootconfig/main.c
> @@ -162,8 +162,11 @@ static int load_xbc_file(const char *path, char **buf)
> if (fd < 0)
> return -errno;
> ret = fstat(fd, &stat);
> - if (ret < 0)
> - return -errno;
> + if (ret < 0) {
> + ret = -errno;
> + close(fd);
> + return ret;
> + }
>
> ret = load_xbc_fd(fd, buf, stat.st_size);
>
>
> --
> Masami Hiramatsu (Google) <mhiramat@kernel.org>
>
Thanks masami!
V/R
Josh Law
© 2016 - 2026 Red Hat, Inc.