If something went wrong in anon_inode_getfile, event_file will be set to non-zero error number and able to bypass the NULL test afterward. Consolidate the error path by testing event_file with handly IS_ERR_OR_NULL() helper since we do want to free event in both cases. Signed-off-by: Leon Yu <chianglungyu@xxxxxxxxx> Fixes: 130056275ade ("perf: Do not double free") Cc: <stable@xxxxxxxxxxxxxxx> # v4.5 --- kernel/events/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/events/core.c b/kernel/events/core.c index 6146148..5f2e19f 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -8617,7 +8617,7 @@ err_alloc: * If event_file is set, the fput() above will have called ->release() * and that will take care of freeing the event. */ - if (!event_file) + if (IS_ERR_OR_NULL(event_file)) free_event(event); err_cpus: put_online_cpus(); -- 2.7.1 -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html