diff options
-rw-r--r-- | Changes | 2 | ||||
-rw-r--r-- | ev_select.c | 10 |
2 files changed, 9 insertions, 3 deletions
@@ -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 } |