]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: renesas: rcar_drif: fix device node reference leak in rcar_drif_bond_enabled
authorMiaoqian Lin <linmq006@gmail.com>
Wed, 3 Sep 2025 13:37:29 +0000 (21:37 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 8 Jan 2026 09:14:45 +0000 (10:14 +0100)
commit 445e1658894fd74eab7e53071fa16233887574ed upstream.

The function calls of_parse_phandle() which returns
a device node with an incremented reference count. When the bonded device
is not available, the function
returns NULL without releasing the reference, causing a reference leak.

Add of_node_put(np) to release the device node reference.
The of_node_put function handles NULL pointers.

Found through static analysis by reviewing the doc of of_parse_phandle()
and cross-checking its usage patterns across the codebase.

Fixes: 7625ee981af1 ("[media] media: platform: rcar_drif: Add DRIF support")
Cc: stable@vger.kernel.org
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/media/platform/renesas/rcar_drif.c

index f21d050543419424794abe1a8559617d70a5126a..6b762c43b495a2c8a87ab7701cba448ae830b8ba 100644 (file)
@@ -1249,6 +1249,7 @@ static struct device_node *rcar_drif_bond_enabled(struct platform_device *p)
        if (np && of_device_is_available(np))
                return np;
 
+       of_node_put(np);
        return NULL;
 }