Messages in this thread Patch in this message | | | From | Leon Yu <> | Subject | [PATCH] perf: fix event leak when perf_event_open() failed to create event_file | Date | Sun, 20 Mar 2016 23:52:15 +0800 |
| |
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@gmail.com> Fixes: 130056275ade ("perf: Do not double free") Cc: <stable@vger.kernel.org> # 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
| |