]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
iio: core: fix memleak in iio_device_register_sysfs
authorDinghao Liu <dinghao.liu@zju.edu.cn>
Fri, 8 Dec 2023 07:31:19 +0000 (15:31 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 23 Feb 2024 08:25:06 +0000 (09:25 +0100)
commit 95a0d596bbd0552a78e13ced43f2be1038883c81 upstream.

When iio_device_register_sysfs_group() fails, we should
free iio_dev_opaque->chan_attr_group.attrs to prevent
potential memleak.

Fixes: 32f171724e5c ("iio: core: rework iio device group creation")
Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
Link: https://lore.kernel.org/r/20231208073119.29283-1-dinghao.liu@zju.edu.cn
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/iio/industrialio-core.c

index d752e9c0499b964e3e2edee7ef36e10bb7aaa5c9..feec93adb0651442f955201794eb3c6bd3a97764 100644 (file)
@@ -1577,10 +1577,13 @@ static int iio_device_register_sysfs(struct iio_dev *indio_dev)
        ret = iio_device_register_sysfs_group(indio_dev,
                                              &iio_dev_opaque->chan_attr_group);
        if (ret)
-               goto error_clear_attrs;
+               goto error_free_chan_attrs;
 
        return 0;
 
+error_free_chan_attrs:
+       kfree(iio_dev_opaque->chan_attr_group.attrs);
+       iio_dev_opaque->chan_attr_group.attrs = NULL;
 error_clear_attrs:
        iio_free_chan_devattr_list(&iio_dev_opaque->channel_attr_list);