diff --git a/src/cares_wrap.cc b/src/cares_wrap.cc index 30e27ecf70a837..a16a0dcbd1bcec 100644 --- a/src/cares_wrap.cc +++ b/src/cares_wrap.cc @@ -1428,6 +1428,7 @@ static void Query(const FunctionCallbackInfo& args) { void AfterGetAddrInfo(uv_getaddrinfo_t* req, int status, struct addrinfo* res) { + auto cleanup = OnScopeLeave([&]() { uv_freeaddrinfo(res); }); std::unique_ptr req_wrap { static_cast(req->data)}; Environment* env = req_wrap->env(); @@ -1488,8 +1489,6 @@ void AfterGetAddrInfo(uv_getaddrinfo_t* req, int status, struct addrinfo* res) { argv[1] = results; } - uv_freeaddrinfo(res); - TRACE_EVENT_NESTABLE_ASYNC_END2( TRACING_CATEGORY_NODE2(dns, native), "lookup", req_wrap.get(), "count", n, "verbatim", verbatim);