Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1420283 > unrolled thread

[PATCH] drm/nouveau/iccsense: fix memory leak

Started bySudip Mukherjee <sudipm.mukherjee@gmail.com>
First post2016-06-12 17:00 +0200
Last post2016-06-12 17:00 +0200
Articles 1 — 1 participant

Back to article view | Back to linux.kernel


Contents

  [PATCH] drm/nouveau/iccsense: fix memory leak Sudip Mukherjee <sudipm.mukherjee@gmail.com> - 2016-06-12 17:00 +0200

#1420283 — [PATCH] drm/nouveau/iccsense: fix memory leak

FromSudip Mukherjee <sudipm.mukherjee@gmail.com>
Date2016-06-12 17:00 +0200
Subject[PATCH] drm/nouveau/iccsense: fix memory leak
Message-ID<rJf1L-1vg-3@gated-at.bofh.it>
In the for loop we are allocating the memory for rail everytime but
in some cases we use "continue" and in those cases the memory already
allocated for rail is leaked and we again allocate new memory for it.
Lets free the memory before continuing with the loop.

Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
---
 drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c
index 323c79a..756ff07 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c
@@ -290,21 +290,28 @@ nvkm_iccsense_oneinit(struct nvkm_subdev *subdev)
 
 		switch (sensor->type) {
 		case NVBIOS_EXTDEV_INA209:
-			if (r->rail != 0)
+			if (r->rail != 0) {
+				kfree(rail);
 				continue;
+			}
 			rail->read = nvkm_iccsense_ina209_read;
 			break;
 		case NVBIOS_EXTDEV_INA219:
-			if (r->rail != 0)
+			if (r->rail != 0) {
+				kfree(rail);
 				continue;
+			}
 			rail->read = nvkm_iccsense_ina219_read;
 			break;
 		case NVBIOS_EXTDEV_INA3221:
-			if (r->rail >= 3)
+			if (r->rail >= 3) {
+				kfree(rail);
 				continue;
+			}
 			rail->read = nvkm_iccsense_ina3221_read;
 			break;
 		default:
+			kfree(rail);
 			continue;
 		}
 
-- 
1.9.1

[toc] | [standalone]


Back to top | Article view | linux.kernel


csiph-web