Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1594462
| From | Oleg Nesterov <oleg@redhat.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: perf: use-after-free in perf_release |
| Date | 2017-03-07 18:50 +0100 |
| Message-ID | <tirfA-2oi-15@gated-at.bofh.it> (permalink) |
| References | <thXAR-6lr-3@gated-at.bofh.it> <ti0S5-lW-1@gated-at.bofh.it> <tinYm-6Q-23@gated-at.bofh.it> <tiohI-h2-23@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On 03/07, Dmitry Vyukov wrote: > > On Tue, Mar 7, 2017 at 3:04 PM, Oleg Nesterov <oleg@redhat.com> wrote: > > On 03/06, Peter Zijlstra wrote: > >> > >> and this is a failed fork(). > >> > >> > >> However, inherited events don't have a filedesc to fput(), and > >> similarly, a task that fails for has never been visible to attach a perf > >> event to because it never hits the pid-hash. > > > > Yes, it is not visible to find_task_by_vpid() until copy_process() does > > attach_pid(PIDTYPE_PID), and copy_process() can't fail after that. > > > I would what is that that is failed in copy_process. Could it be > perf_event_init_task itself? Maybe it leaves a pointer to p in some > shared state on some error conditions? I am looking at perf_event_init_task() too and I can't understand the error handling... perf_event_init_context() can return success even if inherit_task_group() in the first list_for_each_entry(pinned_groups) fails, "ret" will be overwritten by the 2nd list_for_each_entry(flexible_groups) loop. "inherited_all" should be cleared, still this looks confusing at least. inherit_event() returns NULL under is_orphaned_event() check, not ERR_PTR(). Is it correct? Oleg.
Back to linux.kernel | Previous | Next — Previous in thread | Find similar | Unroll thread
perf: use-after-free in perf_release Dmitry Vyukov <dvyukov@google.com> - 2017-03-06 11:00 +0100
Re: perf: use-after-free in perf_release Peter Zijlstra <peterz@infradead.org> - 2017-03-06 13:20 +0100
Re: perf: use-after-free in perf_release Dmitry Vyukov <dvyukov@google.com> - 2017-03-06 13:20 +0100
Re: perf: use-after-free in perf_release Peter Zijlstra <peterz@infradead.org> - 2017-03-06 13:30 +0100
Re: perf: use-after-free in perf_release Dmitry Vyukov <dvyukov@google.com> - 2017-03-06 13:40 +0100
Re: perf: use-after-free in perf_release Peter Zijlstra <peterz@infradead.org> - 2017-03-06 13:50 +0100
Re: perf: use-after-free in perf_release Peter Zijlstra <peterz@infradead.org> - 2017-03-06 14:30 +0100
Re: perf: use-after-free in perf_release Dmitry Vyukov <dvyukov@google.com> - 2017-03-06 14:40 +0100
Re: perf: use-after-free in perf_release Dmitry Vyukov <dvyukov@google.com> - 2017-03-07 10:30 +0100
Re: perf: use-after-free in perf_release Dmitry Vyukov <dvyukov@google.com> - 2017-03-07 10:50 +0100
Re: perf: use-after-free in perf_release Peter Zijlstra <peterz@infradead.org> - 2017-03-07 12:50 +0100
Re: perf: use-after-free in perf_release Peter Zijlstra <peterz@infradead.org> - 2017-03-07 11:40 +0100
Re: perf: use-after-free in perf_release Peter Zijlstra <peterz@infradead.org> - 2017-03-07 10:50 +0100
Re: perf: use-after-free in perf_release Peter Zijlstra <peterz@infradead.org> - 2017-03-07 14:20 +0100
Re: perf: use-after-free in perf_release Peter Zijlstra <peterz@infradead.org> - 2017-03-07 15:10 +0100
Re: perf: use-after-free in perf_release Oleg Nesterov <oleg@redhat.com> - 2017-03-07 15:10 +0100
Re: perf: use-after-free in perf_release Dmitry Vyukov <dvyukov@google.com> - 2017-03-07 15:30 +0100
Re: perf: use-after-free in perf_release Peter Zijlstra <peterz@infradead.org> - 2017-03-07 18:40 +0100
Re: perf: use-after-free in perf_release Oleg Nesterov <oleg@redhat.com> - 2017-03-07 18:50 +0100
csiph-web