[PATCH 5/5] parser: free val.str after xstrtokenize
Peter Hutterer
peter.hutterer at who-t.net
Tue Nov 1 21:29:55 PDT 2011
On Tue, Nov 01, 2011 at 11:12:38AM -0200, przanoni at gmail.com wrote:
> From: Paulo Zanoni <paulo.r.zanoni at intel.com>
>
> After we tokenize val.str, we discard it.
>
> This is just one example:
> 6 bytes in 1 blocks are definitely lost in loss record 24 of 652
> at 0x4C2779D: malloc (in vgpreload_memcheck-amd64-linux.so)
> by 0x4D744D: xf86getToken (scan.c:400)
> by 0x4D75F1: xf86getSubToken (scan.c:462)
> by 0x4DB060: xf86parseInputClassSection (InputClass.c:145)
> by 0x4D664C: xf86readConfigFile (read.c:184)
> by 0x490556: xf86HandleConfigFile (xf86Config.c:2360)
> by 0x49AA77: InitOutput (xf86Init.c:365)
> by 0x425A7A: main (main.c:204)
>
> Signed-off-by: Paulo Zanoni <paulo.r.zanoni at intel.com>
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
> ---
> hw/xfree86/parser/InputClass.c | 9 +++++++++
> 1 files changed, 9 insertions(+), 0 deletions(-)
>
> diff --git a/hw/xfree86/parser/InputClass.c b/hw/xfree86/parser/InputClass.c
> index 1128995..2cdc912 100644
> --- a/hw/xfree86/parser/InputClass.c
> +++ b/hw/xfree86/parser/InputClass.c
> @@ -128,54 +128,63 @@ xf86parseInputClassSection(void)
> Error(QUOTE_MSG, "MatchProduct");
> add_group_entry(&ptr->match_product,
> xstrtokenize(val.str, TOKEN_SEP));
> + free(val.str);
> break;
> case MATCH_VENDOR:
> if (xf86getSubToken(&(ptr->comment)) != STRING)
> Error(QUOTE_MSG, "MatchVendor");
> add_group_entry(&ptr->match_vendor,
> xstrtokenize(val.str, TOKEN_SEP));
> + free(val.str);
> break;
> case MATCH_DEVICE_PATH:
> if (xf86getSubToken(&(ptr->comment)) != STRING)
> Error(QUOTE_MSG, "MatchDevicePath");
> add_group_entry(&ptr->match_device,
> xstrtokenize(val.str, TOKEN_SEP));
> + free(val.str);
> break;
> case MATCH_OS:
> if (xf86getSubToken(&(ptr->comment)) != STRING)
> Error(QUOTE_MSG, "MatchOS");
> add_group_entry(&ptr->match_os,
> xstrtokenize(val.str, TOKEN_SEP));
> + free(val.str);
> break;
> case MATCH_PNPID:
> if (xf86getSubToken(&(ptr->comment)) != STRING)
> Error(QUOTE_MSG, "MatchPnPID");
> add_group_entry(&ptr->match_pnpid,
> xstrtokenize(val.str, TOKEN_SEP));
> + free(val.str);
> break;
> case MATCH_USBID:
> if (xf86getSubToken(&(ptr->comment)) != STRING)
> Error(QUOTE_MSG, "MatchUSBID");
> add_group_entry(&ptr->match_usbid,
> xstrtokenize(val.str, TOKEN_SEP));
> + free(val.str);
> break;
> case MATCH_DRIVER:
> if (xf86getSubToken(&(ptr->comment)) != STRING)
> Error(QUOTE_MSG, "MatchDriver");
> add_group_entry(&ptr->match_driver,
> xstrtokenize(val.str, TOKEN_SEP));
> + free(val.str);
> break;
> case MATCH_TAG:
> if (xf86getSubToken(&(ptr->comment)) != STRING)
> Error(QUOTE_MSG, "MatchTag");
> add_group_entry(&ptr->match_tag,
> xstrtokenize(val.str, TOKEN_SEP));
> + free(val.str);
> break;
> case MATCH_LAYOUT:
> if (xf86getSubToken(&(ptr->comment)) != STRING)
> Error(QUOTE_MSG, "MatchLayout");
> add_group_entry(&ptr->match_layout,
> xstrtokenize(val.str, TOKEN_SEP));
> + free(val.str);
> break;
> case MATCH_IS_KEYBOARD:
> if (xf86getSubToken(&(ptr->comment)) != STRING)
> --
> 1.7.7
>
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel
>
Cheers,
Peter
More information about the xorg-devel
mailing list