[Devel] [PATCH 1/1] Drivers: md: ploop - Do not leak a page on allocation failure
Vasily Averin
vvs at openvz.org
Wed Jul 20 21:07:40 MSK 2022
On 7/20/22 21:02, Alexander Atanasov wrote:
> Hi,
>
> On 20/07/2022 20:57, Vasily Averin wrote:
>
>> Hi Alexander!
>>
>> On 7/20/22 14:05, Alexander Atanasov wrote:
>>> Fix off-by-one error - tries to free the failed allocation and
>>> it leaks the first successful
>> Could you please elaborate? I do not see the difference in behavior.
>>
>> if we have failed on 2nd allocation
>> we have i = 1
>> io_vec[0] was set
>> io_vec[1] was failed
>> we jump to err: label
>> doing i-- end call put_page for io_vec[0]
>> 2nd turn fails.
>> So looks like all works correctly.
>> With your patch situation is not changed.
>>
>> Am I missed something perhaps?
>
>
> No, of course you are not. My bad i overlooked it. Please, ignore.
Do not worry, you are fine!
>>
>> Thank you,
>> Vasily Averin
>>
>>> Signed-off-by: Alexander Atanasov <alexander.atanasov at virtuozzo.com>
>>> ---
>>> drivers/md/dm-ploop-cmd.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/md/dm-ploop-cmd.c b/drivers/md/dm-ploop-cmd.c
>>> index 429a03cce392..e4ea738828bc 100644
>>> --- a/drivers/md/dm-ploop-cmd.c
>>> +++ b/drivers/md/dm-ploop-cmd.c
>>> @@ -489,7 +489,7 @@ struct pio *alloc_pio_with_pages(struct ploop *ploop)
>>> return pio;
>>> err:
>>> - while (i-- > 0)
>>> + while (--i >= 0)
>>> put_page(pio->bi_io_vec[i].bv_page);
>>> kfree(pio);
>>> return NULL;
>> _______________________________________________
>> Devel mailing list
>> Devel at openvz.org
>> https://lists.openvz.org/mailman/listinfo/devel
>
More information about the Devel
mailing list