]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
media: hi556: Fix memory leak (on error) in hi556_check_hwcfg()
authorHans de Goede <hdegoede@redhat.com>
Thu, 19 Dec 2024 19:27:30 +0000 (20:27 +0100)
committerHans Verkuil <hverkuil@xs4all.nl>
Sat, 15 Feb 2025 14:22:36 +0000 (15:22 +0100)
Commit 7d968b5badfc ("media: hi556: Return -EPROBE_DEFER if no endpoint is
found") moved the v4l2_fwnode_endpoint_alloc_parse() call in
hi556_check_hwcfg() up, but it did not make the error-exit paths between
the old and new call-site use "goto check_hwcfg_error;" to free the bus_cfg
on errors.

Add the missing "goto check_hwcfg_error;" statements to fix a memleak on
early error-exits from hi556_check_hwcfg().

Fixes: 7d968b5badfc ("media: hi556: Return -EPROBE_DEFER if no endpoint is found")
Cc: stable@vger.kernel.org
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
drivers/media/i2c/hi556.c

index 3ac42d1ab8b4379db3de71c78a6778acf7c4a170..c28eca2f86f601f35219a6203fe6bdb027c6703a 100644 (file)
@@ -1230,12 +1230,13 @@ static int hi556_check_hwcfg(struct device *dev)
        ret = fwnode_property_read_u32(fwnode, "clock-frequency", &mclk);
        if (ret) {
                dev_err(dev, "can't get clock frequency");
-               return ret;
+               goto check_hwcfg_error;
        }
 
        if (mclk != HI556_MCLK) {
                dev_err(dev, "external clock %d is not supported", mclk);
-               return -EINVAL;
+               ret = -EINVAL;
+               goto check_hwcfg_error;
        }
 
        if (bus_cfg.bus.mipi_csi2.num_data_lanes != 2) {