Re: [PATCH 1/2] libtraceevent: fix memleak in make_bprint_args()
From: Steven Rostedt
Date: Fri Jun 17 2022 - 17:47:30 EST
On Fri, 13 May 2022 10:33:07 +0800
Wang ShaoBo <bobo.shaobowang@xxxxxxxxxx> wrote:
> Release arg allocated from alloc_arg() when strdup failed in make_bprint_args().
>
> Fixes: a6d2a61ac653 ("tools lib traceevent: Remove some die() calls")
> Signed-off-by: Wang ShaoBo <bobo.shaobowang@xxxxxxxxxx>
> ---
> tools/lib/traceevent/event-parse.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/tools/lib/traceevent/event-parse.c b/tools/lib/traceevent/event-parse.c
> index 8e24c4c78c7f..69e4d5229362 100644
> --- a/tools/lib/traceevent/event-parse.c
> +++ b/tools/lib/traceevent/event-parse.c
> @@ -4507,8 +4507,10 @@ static struct tep_print_arg *make_bprint_args(char *fmt, void *data, int size, s
> arg->next = NULL;
> arg->type = TEP_PRINT_BSTRING;
> arg->string.string = strdup(bptr);
> - if (!arg->string.string)
> + if (!arg->string.string) {
> + free(arg);
> goto out_free;
This is a fix, thank you. But libtraceevent now lives here:
https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/
I'll port this patch to that.
Thanks,
-- Steve
> + }
> bptr += strlen(bptr) + 1;
> *next = arg;
> next = &arg->next;