Re: [PATCH] [PATCH for-rc] :Null pointer check is missing in addr_resolve

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Feb 26, 2018 at 5:17 PM, Leon Romanovsky <leon@xxxxxxxxxx> wrote:
> Hi Selvin,
>
> Can you please help your colleague to make the patch right?
>
Sure Leon. He is from a different BU. I will ping him.

> Thanks
>
> On Mon, Feb 26, 2018 at 01:06:02AM -0800, Muneendra wrote:
>> Null pointer check is missing in addr_resolve as
>> dev_get_by_index may return a NULL pointer.
>> And this patch will check whether ndev is NULL
>> and further access the same.
>>
>> The following tests are made.
>>
>>  server                       client
>>  ---------                    ---------
>>  |1.1.1.1|<----rxe-channel--->|1.1.1.2|
>>  ---------                    ---------
>>
>> On server: rdma_lat -c -n 2 -s 1024
>> On client:rdma_lat 1.1.1.1 -c -n 2 -s 1024
>>
>> Fixes: 200298326b27 ("IB/core: Validate route when we init ah")
>> On a side note, I am sending similar fix in ib_init_ah_attr_from_path()
>> which surfaces from same patch.
>>
>> Signed-off-by: Muneendra <muneendra.kumar@xxxxxxxxxxxx>
>> ---
>>  drivers/infiniband/core/addr.c | 16 +++++-----------
>>  1 file changed, 5 insertions(+), 11 deletions(-)
>>
>> diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c
>> index a5b4cf0..e82344a 100644
>> --- a/drivers/infiniband/core/addr.c
>> +++ b/drivers/infiniband/core/addr.c
>> @@ -550,19 +550,13 @@ static int addr_resolve(struct sockaddr *src_in,
>>               dst_release(dst);
>>       }
>>
>> -     if (ndev->flags & IFF_LOOPBACK) {
>> -             ret = rdma_translate_ip(dst_in, addr);
>> -             /*
>> -              * Put the loopback device and get the translated
>> -              * device instead.
>> -              */
>> +     if (ndev) {
>> +             if (ndev->flags & IFF_LOOPBACK)
>> +                     ret = rdma_translate_ip(dst_in, addr);
>> +             else
>> +                     addr->bound_dev_if = ndev->ifindex;
>>               dev_put(ndev);
>> -             ndev = dev_get_by_index(addr->net, addr->bound_dev_if);
>> -     } else {
>> -             addr->bound_dev_if = ndev->ifindex;
>>       }
>> -     dev_put(ndev);
>> -
>>       return ret;
>>  }
>>
>> --
>> 1.8.3.1
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux