Mercurial > hg > nginx
changeset 5062:a095b3692ad1 stable-1.2
Merge of r5017: fixed null dereference with resolver and poll.
Events: fixed null pointer dereference with resolver and poll.
A POLLERR signalled by poll() without POLLIN/POLLOUT, as seen on
Linux, would generate both read and write events, but there's no
write event handler for resolver events. A fix is to only call
event handler of an active event.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 11 Feb 2013 16:06:39 +0000 |
parents | 7ce4ecb6df5c |
children | 6b5c3eab095c |
files | src/event/modules/ngx_poll_module.c |
diffstat | 1 files changed, 2 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/event/modules/ngx_poll_module.c Mon Feb 11 15:34:30 2013 +0000 +++ b/src/event/modules/ngx_poll_module.c Mon Feb 11 16:06:39 2013 +0000 @@ -371,7 +371,7 @@ found = 0; - if (revents & POLLIN) { + if ((revents & POLLIN) && c->read->active) { found = 1; ev = c->read; @@ -388,7 +388,7 @@ ngx_locked_post_event(ev, queue); } - if (revents & POLLOUT) { + if ((revents & POLLOUT) && c->write->active) { found = 1; ev = c->write;