]> git.kaiwu.me - nginx.git/commitdiff
test event type to prevent errors
authorIgor Sysoev <igor@sysoev.ru>
Wed, 6 May 2009 08:53:13 +0000 (08:53 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Wed, 6 May 2009 08:53:13 +0000 (08:53 +0000)
src/event/modules/ngx_select_module.c

index 9be2c6ff3f6eda112c02b7661eb7f3462639f9b7..661e7c63922e8f1f4fd2ae098b23d11fbd803252 100644 (file)
@@ -147,6 +147,16 @@ ngx_select_add_event(ngx_event_t *ev, ngx_int_t event, ngx_uint_t flags)
         return NGX_OK;
     }
 
+    if ((event == NGX_READ_EVENT && ev->write)
+        || (event == NGX_WRITE_EVENT && !ev->write))
+    {
+        ngx_log_error(NGX_LOG_ALERT, ev->log, 0,
+                      "invalid select %s event fd:%d ev:%i",
+                      ev->write ? "write" : "read", c->fd, event);
+        return NGX_ERROR;
+    }
+
+
 #if (NGX_WIN32)
 
     if ((event == NGX_READ_EVENT) && (max_read >= FD_SETSIZE)