mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-09-18 22:59:29 +02:00
orangefs: skip leading spaces before parsing client debug masks
orangefs_prepare_cdm_array() sizes each client debug keyword buffer
with strcspn(cds_head, " "), but then parses the keyword with %s. The
%s conversion skips leading whitespace, while strcspn() does not.
If a client debug entry starts with a space, the allocation can be sized
for an empty keyword while sscanf() copies the following non-empty token.
This can write past the end of the allocated keyword buffer.
Skip leading spaces before computing the keyword length so the allocation
matches the string parsed by sscanf().
Fixes: f7be4ee07f ("Orangefs: kernel client part 4")
Cc: stable@vger.kernel.org
Reported-by: Vega <vega@nebusec.ai>
Assisted-by: Codex:gpt-5.4
Signed-off-by: Zhiling Zou <zhilinz@nebusec.ai>
Signed-off-by: Ren Wei <enjou1224z@gmail.com>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>
This commit is contained in:
committed by
Mike Marshall
parent
7471e16ce1
commit
d410cd5303
@@ -569,6 +569,7 @@ static int orangefs_prepare_cdm_array(char *debug_array_string)
|
||||
cds_delimiter = strchr(cds_head, '\n');
|
||||
*cds_delimiter = '\0';
|
||||
|
||||
cds_head = skip_spaces(cds_head);
|
||||
keyword_len = strcspn(cds_head, " ");
|
||||
|
||||
cdm_array[i].keyword = kzalloc(keyword_len + 1, GFP_KERNEL);
|
||||
|
||||
Reference in New Issue
Block a user