On Fri, Feb 20, 2015 at 11:17:06PM +0100, Jiri Olsa wrote:
> ---
>  tools/lib/traceevent/event-parse.c | 1 +
>  tools/lib/traceevent/event-parse.h | 1 +
>  2 files changed, 2 insertions(+)
> 
> diff --git a/tools/lib/traceevent/event-parse.c 
> b/tools/lib/traceevent/event-parse.c
> index afe20ed9fac8..b35664cc1edc 100644
> --- a/tools/lib/traceevent/event-parse.c
> +++ b/tools/lib/traceevent/event-parse.c
> @@ -6236,6 +6236,7 @@ static void free_format_fields(struct format_field 
> *field)
>               next = field->next;
>               free(field->type);
>               free(field->name);
> +             free(field->alias);

Hmm, didn't we say that if there's no need for the alias that the alias will
simply be a pointer to name? If that's the case we need:

        if (field->alias != field->name)
                free(field->alias);
        free(field->name);

Otherwise it will be a double free.

-- Steve

>               free(field);
>               field = next;
>       }
> diff --git a/tools/lib/traceevent/event-parse.h 
> b/tools/lib/traceevent/event-parse.h
> index 5b4efc062320..8490a4afffa2 100644
> --- a/tools/lib/traceevent/event-parse.h
> +++ b/tools/lib/traceevent/event-parse.h
> @@ -187,6 +187,7 @@ struct format_field {
>       struct event_format     *event;
>       char                    *type;
>       char                    *name;
> +     char                    *alias;
>       int                     offset;
>       int                     size;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to