• Steven Rostedt (Red Hat)'s avatar
    tracing: Fix leaks of filter preds · 60705c89
    Steven Rostedt (Red Hat) authored
    Special preds are created when folding a series of preds that
    can be done in serial. These are allocated in an ops field of
    the pred structure. But they were never freed, causing memory
    leaks.
    
    This was discovered using the kmemleak checker:
    
    unreferenced object 0xffff8800797fd5e0 (size 32):
      comm "swapper/0", pid 1, jiffies 4294690605 (age 104.608s)
      hex dump (first 32 bytes):
        00 00 01 00 03 00 05 00 07 00 09 00 0b 00 0d 00  ................
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
      backtrace:
        [<ffffffff814b52af>] kmemleak_alloc+0x73/0x98
        [<ffffffff8111ff84>] kmemleak_alloc_recursive.constprop.42+0x16/0x18
        [<ffffffff81120e68>] __kmalloc+0xd7/0x125
        [<ffffffff810d47eb>] kcalloc.constprop.24+0x2d/0x2f
        [<ffffffff810d4896>] fold_pred_tree_cb+0xa9/0xf4
        [<ffffffff810d3781>] walk_pred_tree+0x47/0xcc
        [<ffffffff810d5030>] replace_preds.isra.20+0x6f8/0x72f
        [<ffffffff810d50b5>] create_filter+0x4e/0x8b
        [<ffffffff81b1c30d>] ftrace_test_event_filter+0x5a/0x155
        [<ffffffff8100028d>] do_one_initcall+0xa0/0x137
        [<ffffffff81afbedf>] kernel_init_freeable+0x14d/0x1dc
        [<ffffffff814b24b7>] kernel_init+0xe/0xdb
        [<ffffffff814d539c>] ret_from_fork+0x7c/0xb0
        [<ffffffffffffffff>] 0xffffffffffffffff
    
    Cc: Tom Zanussi <tzanussi@gmail.com>
    Cc: stable@vger.kernel.org # 2.6.39+
    Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    60705c89
trace_events_filter.c 50.5 KB