[dm-devel] [dm- devel][PATCH] libmultipath: fix a memory leak in dm_get_maps

Benjamin Marzinski bmarzins at redhat.com
Thu Jul 30 17:25:20 UTC 2020


On Thu, Jul 30, 2020 at 12:01:36PM +0800, lixiaokeng wrote:
> In dm_get_maps func, if vector_alloc_slot(mp) fails, the
> mpp should be free.
> 
> Here we call free_multipath(mpp, KEEP_PATHS) to free map.
> 
> Signed-off-by: Lixiaokeng <lixiaokeng at huawei.com>
> Signed-off-by: Zhiqiang Liu <liuzhiqiang26 at huawei.com>

Reviewed-by: Benjamin Marzinski <bmarzins at redhat.com>

> 
> ---
>  libmultipath/devmapper.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/libmultipath/devmapper.c b/libmultipath/devmapper.c
> index f597ff8b..92eef6f1 100644
> --- a/libmultipath/devmapper.c
> +++ b/libmultipath/devmapper.c
> @@ -1198,8 +1198,10 @@ dm_get_maps (vector mp)
>  		if (!mpp)
>  			goto out;
> 
> -		if (!vector_alloc_slot(mp))
> +		if (!vector_alloc_slot(mp)) {
> +			free_multipath(mpp, KEEP_PATHS);
>  			goto out;
> +		}
> 
>  		vector_set_slot(mp, mpp);
>  		mpp = NULL;
> -- 




More information about the dm-devel mailing list