[PATCH] fbdev: broadsheetfb: fix memory leak

Subsystems: framebuffer layer, the rest

STALE3978d

3 messages, 2 authors, 2015-09-25 · open the first message on its own page

[PATCH] fbdev: broadsheetfb: fix memory leak

From: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Date: 2015-09-18 11:16:43

On the error path we have missed releasing the firmware.

Signed-off-by: Sudip Mukherjee <redacted>
---
 drivers/video/fbdev/broadsheetfb.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/video/fbdev/broadsheetfb.c b/drivers/video/fbdev/broadsheetfb.c
index 0e5fde1..ac1f41e 100644
--- a/drivers/video/fbdev/broadsheetfb.c
+++ b/drivers/video/fbdev/broadsheetfb.c
@@ -752,7 +752,7 @@ static ssize_t broadsheet_loadstore_waveform(struct device *dev,
 	if ((fw_entry->size < 8*1024) || (fw_entry->size > 64*1024)) {
 		dev_err(dev, "Invalid waveform\n");
 		err = -EINVAL;
-		goto err_failed;
+		goto err_fw;
 	}
 
 	mutex_lock(&(par->io_lock));
@@ -762,13 +762,15 @@ static ssize_t broadsheet_loadstore_waveform(struct device *dev,
 	mutex_unlock(&(par->io_lock));
 	if (err < 0) {
 		dev_err(dev, "Failed to store broadsheet waveform\n");
-		goto err_failed;
+		goto err_fw;
 	}
 
 	dev_info(dev, "Stored broadsheet waveform, size %zd\n", fw_entry->size);
 
 	return len;
 
+err_fw:
+	release_firmware(fw_entry);
 err_failed:
 	return err;
 }
-- 
1.9.1

Re: [PATCH] fbdev: broadsheetfb: fix memory leak

From: Tomi Valkeinen <hidden>
Date: 2015-09-24 10:12:56

On 18/09/15 14:16, Sudip Mukherjee wrote:
quoted hunk
On the error path we have missed releasing the firmware.

Signed-off-by: Sudip Mukherjee <redacted>
---
 drivers/video/fbdev/broadsheetfb.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/video/fbdev/broadsheetfb.c b/drivers/video/fbdev/broadsheetfb.c
index 0e5fde1..ac1f41e 100644
--- a/drivers/video/fbdev/broadsheetfb.c
+++ b/drivers/video/fbdev/broadsheetfb.c
@@ -752,7 +752,7 @@ static ssize_t broadsheet_loadstore_waveform(struct device *dev,
 	if ((fw_entry->size < 8*1024) || (fw_entry->size > 64*1024)) {
 		dev_err(dev, "Invalid waveform\n");
 		err = -EINVAL;
-		goto err_failed;
+		goto err_fw;
 	}
 
 	mutex_lock(&(par->io_lock));
@@ -762,13 +762,15 @@ static ssize_t broadsheet_loadstore_waveform(struct device *dev,
 	mutex_unlock(&(par->io_lock));
 	if (err < 0) {
 		dev_err(dev, "Failed to store broadsheet waveform\n");
-		goto err_failed;
+		goto err_fw;
 	}
 
 	dev_info(dev, "Stored broadsheet waveform, size %zd\n", fw_entry->size);
 
 	return len;
 
+err_fw:
+	release_firmware(fw_entry);
 err_failed:
 	return err;
 }
This looks like correct fix, but where is the firmware released when
there is no error?

 Tomi

Re: [PATCH] fbdev: broadsheetfb: fix memory leak

From: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Date: 2015-09-25 13:44:36

On Thu, Sep 24, 2015 at 01:12:48PM +0300, Tomi Valkeinen wrote:
On 18/09/15 14:16, Sudip Mukherjee wrote:
quoted
On the error path we have missed releasing the firmware.

Signed-off-by: Sudip Mukherjee <redacted>
---
<snip>
This looks like correct fix, but where is the firmware released when
there is no error?
I will send v2. Usually all the memleaks will be in the error path so I
concentrate on that part. Sorry, should have looked fully.

regards
sudip
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help