From: Josh Law <objecting@objecting.org>
To: Masami Hiramatsu <mhiramat@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>
Cc: Steven Rostedt <rostedt@goodmis.org>,
linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org
Subject: [PATCH v7 13/15] lib/bootconfig: use signed type for offset in xbc_init_node()
Date: Tue, 17 Mar 2026 16:09:14 +0000 [thread overview]
Message-ID: <20260317160916.33576-14-objecting@objecting.org> (raw)
In-Reply-To: <20260317160916.33576-1-objecting@objecting.org>
lib/bootconfig.c:415:32: warning: conversion to 'long unsigned int'
from 'long int' may change the sign of the result [-Wsign-conversion]
Pointer subtraction yields ptrdiff_t (signed), which was stored in
unsigned long. The original unsigned type implicitly caught a negative
offset (data < xbc_data) because the wrapped value would exceed
XBC_DATA_MAX. Make this intent explicit by using a signed long and
adding an offset < 0 check to the WARN_ON condition.
Signed-off-by: Josh Law <objecting@objecting.org>
---
lib/bootconfig.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/bootconfig.c b/lib/bootconfig.c
index 3c5b6ad32a54..119c3d429c1f 100644
--- a/lib/bootconfig.c
+++ b/lib/bootconfig.c
@@ -412,9 +412,9 @@ const char * __init xbc_node_find_next_key_value(struct xbc_node *root,
static int __init xbc_init_node(struct xbc_node *node, char *data, uint16_t flag)
{
- unsigned long offset = data - xbc_data;
+ long offset = data - xbc_data;
- if (WARN_ON(offset >= XBC_DATA_MAX))
+ if (WARN_ON(offset < 0 || offset >= XBC_DATA_MAX))
return -EINVAL;
node->data = (uint16_t)offset | flag;
--
2.34.1
next prev parent reply other threads:[~2026-03-17 16:09 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-17 16:09 [PATCH v7 00/15] bootconfig: fixes, cleanups, and modernization Josh Law
2026-03-17 16:09 ` [PATCH v7 01/15] lib/bootconfig: clean up comment typos and bracing Josh Law
2026-03-17 16:09 ` [PATCH v7 02/15] lib/bootconfig: narrow flag parameter type from uint32_t to uint16_t Josh Law
2026-03-17 16:09 ` [PATCH v7 03/15] lib/bootconfig: fix off-by-one in xbc_verify_tree() next node check Josh Law
2026-03-17 16:09 ` [PATCH v7 04/15] lib/bootconfig: increment xbc_node_num after node init succeeds Josh Law
2026-03-17 16:09 ` [PATCH v7 05/15] lib/bootconfig: drop redundant memset of xbc_nodes Josh Law
2026-03-17 16:09 ` [PATCH v7 06/15] bootconfig: constify xbc_calc_checksum() data parameter Josh Law
2026-03-17 16:09 ` [PATCH v7 07/15] lib/bootconfig: replace linux/kernel.h with specific includes Josh Law
2026-03-17 16:09 ` [PATCH v7 08/15] lib/bootconfig: validate child node index in xbc_verify_tree() Josh Law
2026-03-17 16:09 ` [PATCH v7 09/15] lib/bootconfig: check xbc_init_node() return in override path Josh Law
2026-03-17 16:09 ` [PATCH v7 10/15] tools/bootconfig: fix fd leak in load_xbc_file() on fstat failure Josh Law
2026-03-17 16:09 ` [PATCH v7 11/15] lib/bootconfig: fix signed comparison in xbc_node_get_data() Josh Law
2026-03-17 16:09 ` [PATCH v7 12/15] lib/bootconfig: use size_t for strlen result in xbc_node_match_prefix() Josh Law
2026-03-17 16:09 ` Josh Law [this message]
2026-03-17 16:09 ` [PATCH v7 14/15] lib/bootconfig: use size_t for key length tracking in xbc_verify_tree() Josh Law
2026-03-17 16:09 ` [PATCH v7 15/15] lib/bootconfig: change xbc_node_index() return type to uint16_t Josh Law
2026-03-18 15:34 ` [PATCH v7 00/15] bootconfig: fixes, cleanups, and modernization Masami Hiramatsu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260317160916.33576-14-objecting@objecting.org \
--to=objecting@objecting.org \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mhiramat@kernel.org \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox