Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d2ffed51 authored by Geert Uytterhoeven's avatar Geert Uytterhoeven Committed by Greg Kroah-Hartman
Browse files

ARM: amba: Don't read past the end of sysfs "driver_override" buffer



When printing the driver_override parameter when it is 4095 and 4094
bytes long, the printing code would access invalid memory because we
need count + 1 bytes for printing.

Cfr. commits 4efe874a ("PCI: Don't read past the end of sysfs
"driver_override" buffer") and bf563b01 ("driver core: platform:
Don't read past the end of "driver_override" buffer").

Fixes: 3cf38571 ("ARM: 8256/1: driver coamba: add device binding path 'driver_override'")
Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: default avatarTodd Kjos <tkjos@google.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 6b614a87
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -87,7 +87,8 @@ static ssize_t driver_override_store(struct device *_dev,
	struct amba_device *dev = to_amba_device(_dev);
	char *driver_override, *old, *cp;

	if (count > PATH_MAX)
	/* We need to keep extra room for a newline */
	if (count >= (PAGE_SIZE - 1))
		return -EINVAL;

	driver_override = kstrndup(buf, count, GFP_KERNEL);