[Devel] [PATCH 1/1] Drivers: md: ploop - Do not leak a page on allocation failure

Alexander Atanasov alexander.atanasov at virtuozzo.com
Wed Jul 20 21:02:54 MSK 2022


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.

>
> 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

-- 
Regards,
Alexander Atanasov



More information about the Devel mailing list