Skip to content

Commit 22c601d

Browse files
nandedamanajfvogel
authored andcommitted
libbpf: Fix out-of-bound read
[ Upstream commit 236d3910117e9f97ebf75e511d8bcc950f1a4e5f ] In `set_kcfg_value_str`, an untrusted string is accessed with the assumption that it will be at least two characters long due to the presence of checks for opening and closing quotes. But the check for the closing quote (value[len - 1] != '"') misses the fact that it could be checking the opening quote itself in case of an invalid input that consists of just the opening quote. This commit adds an explicit check to make sure the string is at least two characters long. Signed-off-by: Nandakumar Edamana <[email protected]> Signed-off-by: Andrii Nakryiko <[email protected]> Link: https://lore.kernel.org/bpf/[email protected] Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 2c600cbe33f2072b218037895b58753cc49e5e97) Signed-off-by: Jack Vogel <[email protected]>
1 parent f8a654b commit 22c601d

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

tools/lib/bpf/libbpf.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2074,7 +2074,7 @@ static int set_kcfg_value_str(struct extern_desc *ext, char *ext_val,
20742074
}
20752075

20762076
len = strlen(value);
2077-
if (value[len - 1] != '"') {
2077+
if (len < 2 || value[len - 1] != '"') {
20782078
pr_warn("extern (kcfg) '%s': invalid string config '%s'\n",
20792079
ext->name, value);
20802080
return -EINVAL;

0 commit comments

Comments
 (0)