[Sound-open-firmware] [PATCH V2] rimage: Fix some memory leak error

Xiuli Pan xiuli.pan at linux.intel.com
Wed Dec 20 14:11:28 CET 2017


From: Pan Xiuli <xiuli.pan at linux.intel.com>

Handle pointers and memory when error happens.

Signed-off-by: Pan Xiuli <xiuli.pan at linux.intel.com>
---
V2: rebase on the HEAD

Signed-off-by: Pan Xiuli <xiuli.pan at linux.intel.com>
---
 rimage/rimage.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/rimage/rimage.c b/rimage/rimage.c
index af57f5a..f5b5404 100644
--- a/rimage/rimage.c
+++ b/rimage/rimage.c
@@ -208,10 +208,11 @@ static int write_elf_data(struct image *image)
 		goto out;
 	}
 
-	free(image->prg);
-	free(image->section);
-
 out:
+	if (image->prg)
+		free(image->prg);
+	if (image->section)
+		free(image->section);
 	return ret;
 }
 
@@ -283,6 +284,7 @@ found:
 	if (image.in_fd == NULL) {
 		fprintf(stderr, "error: unable to open %s for reading %d\n",
 			image.in_file, errno);
+		goto out;
 	}
 
 	/* open outfile for writing */
@@ -291,14 +293,18 @@ found:
 	if (image.out_fd == NULL) {
 		fprintf(stderr, "error: unable to open %s for writing %d\n",
 			image.out_file, errno);
+		goto out;
 	}
 
 	/* write data */
 	ret = write_elf_data(&image);
 
+out:
 	/* close files */
-	fclose(image.out_fd);
-	fclose(image.in_fd);
+	if (image.in_fd)
+		fclose(image.in_fd);
+	if (image.out_fd)
+		fclose(image.out_fd);
 
 	return ret;
 }
-- 
2.7.4



More information about the Sound-open-firmware mailing list