diff options
author | rbb <rbb@13f79535-47bb-0310-9956-ffa450edef68> | 2001-10-02 18:51:17 +0000 |
---|---|---|
committer | rbb <rbb@13f79535-47bb-0310-9956-ffa450edef68> | 2001-10-02 18:51:17 +0000 |
commit | 4d7fe347038959159513a5a9fe32e9ab07594ac9 (patch) | |
tree | 52e88279cb67d8c5052ef6fb3df5323f9843f829 /network_io | |
parent | 98952da2586894e25577db7a719e9f3db5730b42 (diff) | |
download | libapr-4d7fe347038959159513a5a9fe32e9ab07594ac9.tar.gz |
Fix a segfault in apr_poll_clear on Unix. Also fix the logic
for the case where there are multiple events ORed together in
the events list.
Submitted by: Jamshid Mahdavi <mahdavi@volera.com>
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@62392 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'network_io')
-rw-r--r-- | network_io/unix/poll.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/network_io/unix/poll.c b/network_io/unix/poll.c index 2bc753ddf..9e0c27bf9 100644 --- a/network_io/unix/poll.c +++ b/network_io/unix/poll.c @@ -212,8 +212,8 @@ apr_status_t apr_poll_socket_clear(apr_pollfd_t *aprset, apr_int16_t events) newevents = get_event(events); while (i < aprset->curpos) { - if (aprset->events[i] & newevents) { - aprset->events[i] ^= newevents; + if (aprset->pollset[i].events & newevents) { + aprset->pollset[i].events &= ~newevents; } i++; } |