|
5e0563ba
|
2009-05-12T18:27:45
|
|
Fix dangling pointer in epoll after epoll_recalc().
This is based on patch 2790759 from Kevin Springborn. His comments on
sourceforge:
Problem:
The failure case is as follows: Event is added using epoll_add (a
direct pointer is stored in the user_data section), epoll_recalc is
called and the fds array is moved (invalidating the user_data
pointer stored in epoll). epoll_dispatch is called for the added
event and accesses evepoll based on the invalid pointer (set before
the fds array was relocated).
Solution:
Dispatch has access to the epollop structure, so given the fd we can
find the corresponding evepoll struct. Use data.fd instead of
data.ptr and store the fd corresponding to the event. This way when
epoll_recalc moves the fds array (and updates the fds array pointer
in epollop), the evepoll calculation in dispatch still finds the
valid evepoll struct.
svn:r1282
|
|
f06b29b9
|
2009-03-12T17:03:21
|
|
off-by-one error in epoll_recalc; reported by Victor Goya
svn:r1124
|
|
dfa9cb5d
|
2008-12-13T06:12:05
|
|
from trunk: constify structs; from Andrei Nigmatulin
svn:r960
|
|
212523d1
|
2008-04-11T20:02:32
|
|
r19310@catbus: nickm | 2008-04-11 16:02:23 -0400
Backport fix for epoll-on-linux bug (#1908866).
svn:r708
|
|
bb1dd9e7
|
2008-04-10T19:35:57
|
|
r19306@catbus: nickm | 2008-04-10 15:34:27 -0400
Backport fix for bug 1938754: do not warn when epoll_create() fails with ENOSYS.
svn:r707
|
|
9e92909c
|
2008-03-29T01:47:04
|
|
from trunk: make event methods static so that they are not exported; from Andrei Nigmatulin
svn:r693
|
|
bd6fae1d
|
2008-02-23T19:18:39
|
|
r18373@catbus: nickm | 2008-02-23 14:13:06 -0500
add missing "static" to epoll.c
svn:r656
|
|
b23f1dbe
|
2007-12-14T07:18:02
|
|
from trunk: move EV_PERSIST handling out of the event backends
svn:r592
|
|
9a708389
|
2007-12-13T05:58:05
|
|
from trunk: remove obsolete recalc code
svn:r586
|
|
7717cec7
|
2007-11-27T06:15:36
|
|
from trunk: provide event_reinit() to reinitialized an event_base after fork - necessary for epoll/kqueue
svn:r557
|
|
6b4342db
|
2007-11-12T02:37:25
|
|
copy trunk to 1.4
svn:r512
|