mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 10:31:46 +09:00
gpio: sim: fix memory corruption when adding named lines and unnamed hogs
[ Upstream commit95ae9979bf] When constructing the sim, gpio-sim constructs an array of named lines, sized based on the largest offset of any named line, and then initializes that array with the names of all lines, including unnamed hogs with higher offsets. In doing so it writes NULLs beyond the extent of the array. Add a check that only named lines are used to initialize the array. Fixes:cb8c474e79("gpio: sim: new testing module") Signed-off-by: Kent Gibson<warthog618@gmail.com> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
4106894328
commit
c53f2e8462
@@ -717,8 +717,10 @@ static char **gpio_sim_make_line_names(struct gpio_sim_bank *bank,
|
||||
if (!line_names)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
list_for_each_entry(line, &bank->line_list, siblings)
|
||||
line_names[line->offset] = line->name;
|
||||
list_for_each_entry(line, &bank->line_list, siblings) {
|
||||
if (line->name && (line->offset <= max_offset))
|
||||
line_names[line->offset] = line->name;
|
||||
}
|
||||
|
||||
return line_names;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user