summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes2
-rw-r--r--ev_select.c10
2 files changed, 9 insertions, 3 deletions
diff --git a/Changes b/Changes
index 27e9e45..e667d40 100644
--- a/Changes
+++ b/Changes
@@ -6,7 +6,7 @@ TODO: signal handling per loop
TODO: nsig
- incompatible change: do not necessarily reset signal handler
to SIG_DFL when a sighandler is stopped.
- - ev_default_destroy did not properly set one member to zero,
+ - ev_default_destroy did not properly free or zero some members,
potentially causing crashes and memory corruption on repated
ev_default_destroy/ev_default_loop calls.
- take advantage of signalfd on GNU/Linux systems.
diff --git a/ev_select.c b/ev_select.c
index e57c1e2..818a63e 100644
--- a/ev_select.c
+++ b/ev_select.c
@@ -282,9 +282,12 @@ select_init (EV_P_ int flags)
#else
vec_max = 0;
vec_ri = 0;
- vec_ri = 0;
- vec_wo = 0;
+ vec_ro = 0;
+ vec_wi = 0;
vec_wo = 0;
+ #ifdef _WIN32
+ vec_eo = 0;
+ #endif
#endif
return EVBACKEND_SELECT;
@@ -297,6 +300,9 @@ select_destroy (EV_P)
ev_free (vec_ro);
ev_free (vec_wi);
ev_free (vec_wo);
+ #ifdef _WIN32
+ ev_free (vec_eo);
+ #endif
}