From dd089f09bd2b5a4a1bdcd0c4843d6acdf462f5b5 Mon Sep 17 00:00:00 2001 From: Leonid Evdokimov Date: Sun, 25 Mar 2012 23:14:27 +0400 Subject: [PATCH] Proper accept_backoff event cleanup. --- redsocks.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/redsocks.c b/redsocks.c index f32fa2e..73699b0 100644 --- a/redsocks.c +++ b/redsocks.c @@ -821,14 +821,18 @@ static void redsocks_fini_instance(redsocks_instance *instance) { if (instance->listener.inserted) if (tracked_event_del(&instance->listener) != 0) log_errno(LOG_WARNING, "event_del"); - if (instance->accept_backoff.inserted) - if (tracked_event_del(&instance->accept_backoff) != 0) - log_errno(LOG_WARNING, "event_del"); if (close(EVENT_FD(&instance->listener.ev)) != 0) log_errno(LOG_WARNING, "close"); memset(&instance->listener, 0, sizeof(instance->listener)); } + if (event_initialized(&instance->accept_backoff.ev)) { + if (instance->accept_backoff.inserted) + if (tracked_event_del(&instance->accept_backoff) != 0) + log_errno(LOG_WARNING, "event_del"); + memset(&instance->accept_backoff, 0, sizeof(instance->accept_backoff)); + } + list_del(&instance->list); free(instance->config.type);