[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220605065614.1332-1-linmq006@gmail.com>
Date: Sun, 5 Jun 2022 10:56:13 +0400
From: Miaoqian Lin <linmq006@...il.com>
To: Marcel Holtmann <marcel@...tmann.org>,
Johan Hedberg <johan.hedberg@...il.com>,
Luiz Augusto von Dentz <luiz.dentz@...il.com>,
Linus Walleij <linus.walleij@...aro.org>,
linux-bluetooth@...r.kernel.org, linux-kernel@...r.kernel.org
Cc: linmq006@...il.com
Subject: [PATCH] Bluetooth: btbcm: Fix refcount leak in btbcm_get_board_name
of_find_node_by_path() returns a node pointer with refcount incremented,
we should use of_node_put() on it when not need anymore.
Add missing of_node_put() in the error path to avoid refcount leak.
Fixes: 63fac3343b99 ("Bluetooth: btbcm: Support per-board firmware variants")
Signed-off-by: Miaoqian Lin <linmq006@...il.com>
---
drivers/bluetooth/btbcm.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/bluetooth/btbcm.c b/drivers/bluetooth/btbcm.c
index 76fbb046bdbe..6f05054794e8 100644
--- a/drivers/bluetooth/btbcm.c
+++ b/drivers/bluetooth/btbcm.c
@@ -495,8 +495,10 @@ static const char *btbcm_get_board_name(struct device *dev)
if (!root)
return NULL;
- if (of_property_read_string_index(root, "compatible", 0, &tmp))
+ if (of_property_read_string_index(root, "compatible", 0, &tmp)) {
+ of_node_put(root);
return NULL;
+ }
/* get rid of any '/' in the compatible string */
len = strlen(tmp) + 1;
--
2.25.1
Powered by blists - more mailing lists