From 143e584d81e18757922706ae67f9fd61e85a10d1 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Wed, 23 Mar 2011 19:09:05 +0300 Subject: [PATCH] Race (func MUST be called after all modifications to its argument) --- src/dns.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/dns.c b/src/dns.c index 52fe0a9f0..6e69b174a 100644 --- a/src/dns.c +++ b/src/dns.c @@ -1026,9 +1026,11 @@ dns_timer_cb (gint fd, short what, void *arg) rep->code = DNS_RC_SERVFAIL; upstream_fail (&rep->request->server->up, rep->request->time); remove_normal_event (req->session, dns_fin_cb, req); - req->func (rep, req->arg); dns_check_throttling (req->resolver); req->resolver->errors ++; + + req->func (rep, req->arg); + return; } /* Select other server */ @@ -1092,9 +1094,11 @@ dns_retransmit_handler (gint fd, short what, void *arg) rep->request = req; rep->code = DNS_RC_SERVFAIL; upstream_fail (&rep->request->server->up, rep->request->time); - req->func (rep, req->arg); req->resolver->errors ++; dns_check_throttling (req->resolver); + + req->func (rep, req->arg); + return; } r = send_dns_request (req); -- 2.39.5