mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-02 03:30:08 -04:00
lib/bootconfig: fix off-by-one in xbc_verify_tree() unclosed brace error
__xbc_open_brace() pushes entries with post-increment
(open_brace[brace_index++]), so brace_index always points one past
the last valid entry. xbc_verify_tree() reads open_brace[brace_index]
to report which brace is unclosed, but this is one past the last
pushed entry and contains stale/zero data, causing the error message
to reference the wrong node.
Use open_brace[brace_index - 1] to correctly identify the unclosed
brace. brace_index is known to be > 0 here since we are inside the
if (brace_index) guard.
Link: https://lore.kernel.org/all/20260312191143.28719-2-objecting@objecting.org/
Fixes: ead1e19ad9 ("lib/bootconfig: Fix a bug of breaking existing tree nodes")
Cc: stable@vger.kernel.org
Signed-off-by: Josh Law <objecting@objecting.org>
Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
This commit is contained in:
committed by
Masami Hiramatsu (Google)
parent
1f318b96cc
commit
39ebc8d7f5
@@ -802,7 +802,7 @@ static int __init xbc_verify_tree(void)
|
||||
|
||||
/* Brace closing */
|
||||
if (brace_index) {
|
||||
n = &xbc_nodes[open_brace[brace_index]];
|
||||
n = &xbc_nodes[open_brace[brace_index - 1]];
|
||||
return xbc_parse_error("Brace is not closed",
|
||||
xbc_node_get_data(n));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user