[PATCH 3/5] parser: free scandir's list

przanoni at gmail.com przanoni at gmail.com
Tue Nov 1 06:12:36 PDT 2011


From: Paulo Zanoni <paulo.r.zanoni at intel.com>

It seems appropriate to make the function that frees the list elements
also free the list.

80 bytes in 1 blocks are definitely lost in loss record 411 of 631
   at 0x4C2779D: malloc (vgpreload_memcheck-amd64-linux.so)
   by 0x4C27927: realloc (vgpreload_memcheck-amd64-linux.so)
   by 0x696A80D: scandir (scandir.c:108)
   by 0x4D8828: OpenConfigDir (scan.c:854)
   by 0x4D8A43: xf86openConfigDirFiles (scan.c:952)
   by 0x49031F: xf86HandleConfigFile (xf86Config.c:2327)
   by 0x49A9E3: InitOutput (xf86Init.c:365)
   by 0x425A7A: main (main.c:204)

Signed-off-by: Paulo Zanoni <paulo.r.zanoni at intel.com>
---
 hw/xfree86/parser/scan.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/hw/xfree86/parser/scan.c b/hw/xfree86/parser/scan.c
index 668237b..96ea703 100644
--- a/hw/xfree86/parser/scan.c
+++ b/hw/xfree86/parser/scan.c
@@ -818,6 +818,7 @@ AddConfigDirFiles(const char *dirpath, struct dirent **list, int num)
 		numFiles++;
 	}
 
+	free(list);
 	return openedFile;
 }
 
@@ -856,7 +857,6 @@ OpenConfigDir(const char *path, const char *cmdline, const char *projroot,
 		if (!found) {
 			free(dirpath);
 			dirpath = NULL;
-			free(list);
 		}
 	}
 
-- 
1.7.7



More information about the xorg-devel mailing list