• R
    epoll: Fix user space breakage related to EPOLLWAKEUP · a8159414
    Rafael J. Wysocki 提交于
    Commit 4d7e30d9 (epoll: Add a flag, EPOLLWAKEUP, to prevent
    suspend while epoll events are ready) caused some applications to
    malfunction, because they set the bit corresponding to the new
    EPOLLWAKEUP flag in their eventpoll flags and they don't have the
    new CAP_EPOLLWAKEUP capability.
    
    To prevent that from happening, change epoll_ctl() to clear
    EPOLLWAKEUP in epds.events if the caller doesn't have the
    CAP_EPOLLWAKEUP capability instead of failing and returning an
    error code, which allows the affected applications to function
    normally.
    Reported-and-tested-by: NJiri Slaby <jslaby@suse.cz>
    Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
    a8159414
eventpoll.c 53.5 KB