summaryrefslogtreecommitdiff
path: root/network_io
diff options
context:
space:
mode:
authorrbb <rbb@13f79535-47bb-0310-9956-ffa450edef68>2001-10-02 18:51:17 +0000
committerrbb <rbb@13f79535-47bb-0310-9956-ffa450edef68>2001-10-02 18:51:17 +0000
commit4d7fe347038959159513a5a9fe32e9ab07594ac9 (patch)
tree52e88279cb67d8c5052ef6fb3df5323f9843f829 /network_io
parent98952da2586894e25577db7a719e9f3db5730b42 (diff)
downloadlibapr-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.c4
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++;
}