[dm-devel] [PATCH v3 1/3] libmultipath: prevent memory leak in alloc_path_with_pathinfo() if pp_ptr is NULL

Hannes Reinecke hare at suse.de
Wed Dec 14 07:05:50 UTC 2016


On 12/14/2016 03:01 AM, Mauricio Faria de Oliveira wrote:
> In alloc_path_with_pathinfo(), if the 'pp_ptr' argument is NULL
> (which is acceptable and checked in the function in two places)
> the 'pp' pointer is lost as it is not referenced anywhere else;
> thus the memory allocated for it is leaked.
>
> So, call free_path() in the case 'pp_ptr' is NULL too.
>
> Signed-off-by: Mauricio Faria de Oliveira <mauricfo at linux.vnet.ibm.com>
> ---
>  libmultipath/discovery.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c
> index 7b5b4344b2a1..3c5c808436b2 100644
> --- a/libmultipath/discovery.c
> +++ b/libmultipath/discovery.c
> @@ -58,7 +58,7 @@ alloc_path_with_pathinfo (struct config *conf, struct udev_device *udevice,
>  		err = pathinfo(pp, conf, flag | DI_BLACKLIST);
>  	}
>
> -	if (err)
> +	if (err || !pp_ptr)
>  		free_path(pp);
>  	else if (pp_ptr)
>  		*pp_ptr = pp;
>
Reviewed-by: Hannes Reinecke <hare at suse.com>

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		   Teamlead Storage & Networking
hare at suse.de			               +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)




More information about the dm-devel mailing list