Message ID | 20241031014743.2313121-1-quzicheng@huawei.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | iio: fix memory leak for iio_gts_build_avail_scale_table() | expand |
Hi Zicheng On 31/10/2024 03:47, Zicheng Qu wrote: > In iio_gts_build_avail_scale_table(), the memory allocated for > per_time_gains is freed using kfree(per_time_gains) before return 0. > However, the type per_time_gains is 'int **', and the memory allocated > for its inner elements is not being freed, leading to a memory leak. > > Cc: stable@vger.kernel.org # v6.6+ > Fixes: 38416c28e168 ("iio: light: Add gain-time-scale helpers") > Signed-off-by: Zicheng Qu <quzicheng@huawei.com> > --- > drivers/iio/industrialio-gts-helper.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/iio/industrialio-gts-helper.c b/drivers/iio/industrialio-gts-helper.c > index 59d7615c0f56..f2450b2e740d 100644 > --- a/drivers/iio/industrialio-gts-helper.c > +++ b/drivers/iio/industrialio-gts-helper.c > @@ -307,6 +307,8 @@ static int iio_gts_build_avail_scale_table(struct iio_gts *gts) > if (ret) > goto err_free_out; > > + for (j = 0; j < gts->num_itime; j++) > + kfree(per_time_gains[i]); > kfree(per_time_gains); > gts->per_time_avail_scale_tables = per_time_scales; > You're right, thanks! This, however, was already fixed by: https://lore.kernel.org/all/20241011095512.3667549-1-ruanjinjie@huawei.com/ Out of the curiosity (and no need to respond if you don't feel like) - are you using the gts helpers in some of your project(s)? I am glad seeing these fixes coming in and just wondered if all these bugs are found because these helpers are being used outside the ROHM drivers :) Yours, -- Matti
diff --git a/drivers/iio/industrialio-gts-helper.c b/drivers/iio/industrialio-gts-helper.c index 59d7615c0f56..f2450b2e740d 100644 --- a/drivers/iio/industrialio-gts-helper.c +++ b/drivers/iio/industrialio-gts-helper.c @@ -307,6 +307,8 @@ static int iio_gts_build_avail_scale_table(struct iio_gts *gts) if (ret) goto err_free_out; + for (j = 0; j < gts->num_itime; j++) + kfree(per_time_gains[i]); kfree(per_time_gains); gts->per_time_avail_scale_tables = per_time_scales;
In iio_gts_build_avail_scale_table(), the memory allocated for per_time_gains is freed using kfree(per_time_gains) before return 0. However, the type per_time_gains is 'int **', and the memory allocated for its inner elements is not being freed, leading to a memory leak. Cc: stable@vger.kernel.org # v6.6+ Fixes: 38416c28e168 ("iio: light: Add gain-time-scale helpers") Signed-off-by: Zicheng Qu <quzicheng@huawei.com> --- drivers/iio/industrialio-gts-helper.c | 2 ++ 1 file changed, 2 insertions(+)