Re: [PATCH v4 06/14] of: property: Avoiding using uninitialized variable @imaplen in parse_interrupt_map()
From: Zijun Hu
Date: Fri Jan 10 2025 - 17:38:24 EST
On 2025/1/11 04:26, Rob Herring wrote:
> On Thu, Jan 09, 2025 at 09:26:57PM +0800, Zijun Hu wrote:
>> From: Zijun Hu <quic_zijuhu@xxxxxxxxxxx>
>>
>> parse_interrupt_map() will use uninitialized variable @imaplen if fails
>> to get property 'interrupt-map'.
>>
>> Fix by using the variable after successfully getting the property.
>>
>> Fixes: e7985f43609c ("of: property: Fix fw_devlink handling of interrupt-map")
>> Signed-off-by: Zijun Hu <quic_zijuhu@xxxxxxxxxxx>
>> ---
>> drivers/of/property.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/of/property.c b/drivers/of/property.c
>> index dca1a3ebccae1093b2b11f51e8e692bca854d0e3..6245cbff3527d762c16e7f4b7b7b3d4f2e9ddbe6 100644
>> --- a/drivers/of/property.c
>> +++ b/drivers/of/property.c
>> @@ -1391,9 +1391,9 @@ static struct device_node *parse_interrupt_map(struct device_node *np,
>> addrcells = of_bus_n_addr_cells(np);
>>
>> imap = of_get_property(np, "interrupt-map", &imaplen);
>> - imaplen /= sizeof(*imap);
>> if (!imap)
>> return NULL;
>> + imaplen /= sizeof(*imap);
>
> sizeof() is a compile time constant, there's not an actual dereference
> here.
>
the uninitialized variable is @imaplen, and not sizeof(*imap).
>>
>> imap_end = imap + imaplen;
>>
>>
>> --
>> 2.34.1
>>