mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
soundwire: validate DT compatible before parsing it
`sdw_of_find_slaves()` fetches raw `"compatible"` bytes with
`of_get_property()` and then immediately parses them with
`sscanf("sdw%01x%04hx%04hx%02hhx", ...)`.
Live-tree OF properties are stored as raw bytes plus a separate length;
they are not globally guaranteed to be NUL-terminated. Validate the
first compatible string before parsing it.
Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn>
Link: https://patch.msgid.link/20260403183504.4-soundwire-compatible-pengpeng@iscas.ac.cn
Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
be6d8daaab
commit
45c7bda7b7
|
|
@ -244,8 +244,8 @@ int sdw_of_find_slaves(struct sdw_bus *bus)
|
|||
struct sdw_slave_id id;
|
||||
const __be32 *addr;
|
||||
|
||||
compat = of_get_property(node, "compatible", NULL);
|
||||
if (!compat)
|
||||
ret = of_property_read_string(node, "compatible", &compat);
|
||||
if (ret)
|
||||
continue;
|
||||
|
||||
ret = sscanf(compat, "sdw%01x%04hx%04hx%02hhx", &sdw_version,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user