On Thu, Nov 03, 2011 at 09:51:58PM -0200, [email protected] wrote: > From: Paulo Zanoni <[email protected]> > > v2: move the free()s to the function that calls scandir > > 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 <[email protected]> > --- > > If we're going to move "free(list)" to outside the AddConfigDirFiles function, > we must also move the "free(list[i])". IMHO, keeping these split as it was > before is not a good idea. So either we keep this or v1. >
that's what I had envisioned, thanks. Reviewed-by: Peter Hutterer <[email protected]> > > hw/xfree86/parser/scan.c | 6 +++--- > 1 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/hw/xfree86/parser/scan.c b/hw/xfree86/parser/scan.c > index 668237b..78d57c4 100644 > --- a/hw/xfree86/parser/scan.c > +++ b/hw/xfree86/parser/scan.c > @@ -798,14 +798,12 @@ AddConfigDirFiles(const char *dirpath, struct dirent > **list, int num) > "files opened\n"); > warnOnce = TRUE; > } > - free(list[i]); > continue; > } > > path = malloc(PATH_MAX + 1); > snprintf(path, PATH_MAX + 1, "%s/%s", dirpath, > list[i]->d_name); > - free(list[i]); > file = fopen(path, "r"); > if (!file) { > free(path); > @@ -856,8 +854,10 @@ OpenConfigDir(const char *path, const char *cmdline, > const char *projroot, > if (!found) { > free(dirpath); > dirpath = NULL; > - free(list); > } > + while (num--) > + free(list[num]); > + free(list); > } > > free(pathcopy); > -- > 1.7.7 > _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
