https://bugs.kde.org/show_bug.cgi?id=422623

--- Comment #2 from Mark Wielaard <m...@klomp.org> ---
(In reply to Mark Wielaard from comment #0)
> But as pointed out in the Fedora bug report
> (https://bugzilla.redhat.com/show_bug.cgi?id=1844778) even that might not be
> completely correct since epoll_data_t is a union of both 32- and 64-bit
> fields and so might only have seen half of the 64-bits be defined.

This is indeed tricky. The epoll_event data field is user data that the kernel
will provide to epoll_[p]wait. Normally one would set data.fd to the fd,
otherwise you won't know which file descriptor the event belongs to. But this
is not required. Setting just fd would indeed mean only 32bits are initialized
(although some example code explicitly does data.u64 = fd).

I don't immediately see how we can track whether or not (and how much of the
union) the user sets the data field. So I propose for epoll_ctl we only check
the events field is initialized and on epoll_[p]wait we assume both the events
and data fields are completely initialized (note that epoll_[p]wait also
assumes the padding is initialized, I propose we don't).

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to