Created attachment 60179 reference event sources before calling timeout handler to ensure events stay valid for loop iteration.
If ply_event_loop_handle_timeouts() is called before the events returned by epoll_wait() are referenced, a timeout handler can free an event source leading to undefined behaviour (and frequently SIGSEGV crashes) once ply_event_loop_handle_timeouts() has finished since ply_event_loop_process_pending_events() continues to try and process the now invalid event sources. Thanks to cjwatson for a simpler solution to my original fix. Save errno values to ensure logic is robust in case handler makes system call. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/553745 Title: plymouthd crashed with SIGSEGV in ply_event_loop_process_pending_events() To manage notifications about this bug go to: https://bugs.launchpad.net/plymouth/+bug/553745/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
