lkml.org 
[lkml]   [2020]   [Sep]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.8 79/99] tracing: fix double free
    Date
    From: Tom Rix <trix@redhat.com>

    commit 46bbe5c671e06f070428b9be142cc4ee5cedebac upstream.

    clang static analyzer reports this problem

    trace_events_hist.c:3824:3: warning: Attempt to free
    released memory
    kfree(hist_data->attrs->var_defs.name[i]);

    In parse_var_defs() if there is a problem allocating
    var_defs.expr, the earlier var_defs.name is freed.
    This free is duplicated by free_var_defs() which frees
    the rest of the list.

    Because free_var_defs() has to run anyway, remove the
    second free fom parse_var_defs().

    Link: https://lkml.kernel.org/r/20200907135845.15804-1-trix@redhat.com

    Cc: stable@vger.kernel.org
    Fixes: 30350d65ac56 ("tracing: Add variable support to hist triggers")
    Reviewed-by: Tom Zanussi <tom.zanussi@linux.intel.com>
    Signed-off-by: Tom Rix <trix@redhat.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    kernel/trace/trace_events_hist.c | 1 -
    1 file changed, 1 deletion(-)

    --- a/kernel/trace/trace_events_hist.c
    +++ b/kernel/trace/trace_events_hist.c
    @@ -3865,7 +3865,6 @@ static int parse_var_defs(struct hist_tr

    s = kstrdup(field_str, GFP_KERNEL);
    if (!s) {
    - kfree(hist_data->attrs->var_defs.name[n_vars]);
    ret = -ENOMEM;
    goto free;
    }

    \
     
     \ /
      Last update: 2020-09-29 13:50    [W:4.125 / U:1.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site