fix a use-after-free in resolver
when processing a mismatched response, we call dns_dispatch_getnext(). If that fails, for example because of a timeout, fctx_done() is called, which cancels all queries. We mustn't run fctx_cancelquery() again after that.
Closes #3018 (closed)
Edited by Evan Hunt