----- On May 14, 2020, at 12:39 PM, Borislav Petkov [email protected] wrote: > On Thu, May 14, 2020 at 12:03:30PM -0400, Mathieu Desnoyers wrote: >> - #MC triggered, queuing task work, >> - unrelated signal happens to be delivered to task, >> - exit to usermode loop handles do_signal first, >> - then it runs task work. > > How can that even happen? > > exit_to_usermode_loop->do_signal->get_signal and that does: > > if (unlikely(current->task_works)) > task_work_run(); > > at the top. > > So the task work will always run before the signal handler.
OK yes, nevermind. I focused on its invocation from tracehook_notify_resume and missed this invocation in do_signal. My bad. Thanks, Mathieu -- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com

