Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

iio: adc: adi-axi-adc: Fix refcount leak in adi_axi_adc_attach_client

of_parse_phandle() returns a node pointer with refcount
incremented, we should use of_node_put() on it when not need anymore.
Add missing of_node_put() to avoid refcount leak.

Fixes: ef04070692a2 ("iio: adc: adi-axi-adc: add support for AXI ADC IP core")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Link: https://lore.kernel.org/r/20220524074517.45268-1-linmq006@gmail.com
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

authored by

Miaoqian Lin and committed by
Jonathan Cameron
ada7b0c0 7a2f6f61

+3
+3
drivers/iio/adc/adi-axi-adc.c
··· 322 322 323 323 if (!try_module_get(cl->dev->driver->owner)) { 324 324 mutex_unlock(&registered_clients_lock); 325 + of_node_put(cln); 325 326 return ERR_PTR(-ENODEV); 326 327 } 327 328 328 329 get_device(cl->dev); 329 330 cl->info = info; 330 331 mutex_unlock(&registered_clients_lock); 332 + of_node_put(cln); 331 333 return cl; 332 334 } 333 335 334 336 mutex_unlock(&registered_clients_lock); 337 + of_node_put(cln); 335 338 336 339 return ERR_PTR(-EPROBE_DEFER); 337 340 }