public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] lib/bootconfig: fix off-by-one in xbc_verify_tree() unclosed brace error
@ 2026-03-12 18:45 Josh Law
  2026-03-12 18:45 ` [PATCH 2/3] lib/bootconfig: check bounds before writing in __xbc_open_brace() Josh Law
  2026-03-12 18:45 ` [PATCH 3/3] lib/bootconfig: fix snprintf truncation check in xbc_node_compose_key_after() Josh Law
  0 siblings, 2 replies; 3+ messages in thread
From: Josh Law @ 2026-03-12 18:45 UTC (permalink / raw)
  To: Masami Hiramatsu, Andrew Morton
  Cc: Josh Law, linux-kernel, linux-trace-kernel

__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.

Signed-off-by: Josh Law <objecting@objecting.org>
---
 lib/bootconfig.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/bootconfig.c b/lib/bootconfig.c
index 2bcd5c2aa87e..a1e6a2e14b01 100644
--- a/lib/bootconfig.c
+++ b/lib/bootconfig.c
@@ -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));
 	}
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-03-12 18:45 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-12 18:45 [PATCH 1/3] lib/bootconfig: fix off-by-one in xbc_verify_tree() unclosed brace error Josh Law
2026-03-12 18:45 ` [PATCH 2/3] lib/bootconfig: check bounds before writing in __xbc_open_brace() Josh Law
2026-03-12 18:45 ` [PATCH 3/3] lib/bootconfig: fix snprintf truncation check in xbc_node_compose_key_after() Josh Law

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox