[PATCH v2] media: mdp3: Fix resource leak in a for_each_child_of_node() loop

AngeloGioacchino Del Regno angelogioacchino.delregno at collabora.com
Thu Jul 20 00:51:43 PDT 2023


Il 20/07/23 08:23, Lu Hongfei ha scritto:
> for_each_child_of_node should have of_node_put()
> in error path avoid resource leaks.
> 
> Signed-off-by: Lu Hongfei <luhongfei at vivo.com>
> ---
> Changelog:
> v1->v2:
> 1. Change the subject line of this patch to include driver name.
> 2. Remove the unneeded of_node_put.
> 
>   drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c
> index a605e80c7dc3..40c4b79a5090 100644
> --- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c
> +++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c
> @@ -1135,6 +1135,7 @@ int mdp_comp_config(struct mdp_dev *mdp)
>   		comp = mdp_comp_create(mdp, node, id);
>   		if (IS_ERR(comp)) {
>   			ret = PTR_ERR(comp);
> +			of_node_put(node);
>   			goto err_init_comps;
>   		}
>   

In case mdp_comp_sub_create() fails, we still want to decrease the refcount
of `node`....

...so, just call of_node_put(node) just once, at the err_init_comps label.

err_init_comps:
	mdp_comp_destroy(mdp);
	of_node_put(node);
	return ret;

Regards,
Angelo



More information about the linux-arm-kernel mailing list