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

Peter Hutterer peter.hutterer at who-t.net
Tue Nov 1 21:27:41 PDT 2011


On Tue, Nov 01, 2011 at 11:12:36AM -0200, przanoni at gmail.com wrote:
> 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);

not a big fan of doing this. why can't the caller (which allocates the list)
free it?  imo it'd make much more sense to the occasional reader of the code

Cheers,
  Peter

>  	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