Colin King
2016-Jun-02 10:28 UTC
[Nouveau] [PATCH] drm/nouveau/iccsense: fix memory leak on default sensor->type case
From: Colin Ian King <colin.king at canonical.com> The default sensor->type case leaks memory allocated to rail. Fix this by free'ing rail before we continue with the next loop iteration. Signed-off-by: Colin Ian King <colin.king at canonical.com> --- drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c index 323c79a..79b0eb5 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c @@ -305,6 +305,7 @@ nvkm_iccsense_oneinit(struct nvkm_subdev *subdev) rail->read = nvkm_iccsense_ina3221_read; break; default: + kfree(rail); continue; } -- 2.8.1
karol herbst
2016-Jun-03 09:55 UTC
[Nouveau] [PATCH] drm/nouveau/iccsense: fix memory leak on default sensor->type case
Hi Colin, thanks for pointing this out, but I am quite sure this continue statement won't ever be hit, ever. check the nvkm_iccsense_create_sensor function. A sensor object will only be created for one of those three types and others don't exist. I've just added that default statement to shut GCC I think. The thing is I reworked that code already and will check if this situation still applies there. 2016-06-02 12:28 GMT+02:00 Colin King <colin.king at canonical.com>:> From: Colin Ian King <colin.king at canonical.com> > > The default sensor->type case leaks memory allocated to rail. Fix > this by free'ing rail before we continue with the next loop iteration. > > Signed-off-by: Colin Ian King <colin.king at canonical.com> > --- > drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c > index 323c79a..79b0eb5 100644 > --- a/drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c > +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c > @@ -305,6 +305,7 @@ nvkm_iccsense_oneinit(struct nvkm_subdev *subdev) > rail->read = nvkm_iccsense_ina3221_read; > break; > default: > + kfree(rail); > continue; > } > > -- > 2.8.1 > > _______________________________________________ > Nouveau mailing list > Nouveau at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/nouveau
Colin Ian King
2016-Jun-03 10:42 UTC
[Nouveau] [PATCH] drm/nouveau/iccsense: fix memory leak on default sensor->type case
On 03/06/16 10:55, karol herbst wrote:> Hi Colin, > > thanks for pointing this out, but I am quite sure this continue > statement won't ever be hit, ever. > > check the nvkm_iccsense_create_sensor function. A sensor object will > only be created for one of those three types and others don't exist. > I've just added that default statement to shut GCC I think. > > The thing is I reworked that code already and will check if this > situation still applies there.OK, thanks for letting me know. Apologies if I burnt up some of your valuable cycles on this. Colin> > 2016-06-02 12:28 GMT+02:00 Colin King <colin.king at canonical.com>: >> From: Colin Ian King <colin.king at canonical.com> >> >> The default sensor->type case leaks memory allocated to rail. Fix >> this by free'ing rail before we continue with the next loop iteration. >> >> Signed-off-by: Colin Ian King <colin.king at canonical.com> >> --- >> drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c >> index 323c79a..79b0eb5 100644 >> --- a/drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c >> +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c >> @@ -305,6 +305,7 @@ nvkm_iccsense_oneinit(struct nvkm_subdev *subdev) >> rail->read = nvkm_iccsense_ina3221_read; >> break; >> default: >> + kfree(rail); >> continue; >> } >> >> -- >> 2.8.1 >> >> _______________________________________________ >> Nouveau mailing list >> Nouveau at lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/nouveau