Only call freeaddrinfo if an actual addrinfo struct has been allocated

This commit is contained in:
louiz’
2017-02-15 01:46:29 +01:00
parent efb8a11c57
commit 679bf94192
+1 -1
View File
@@ -75,7 +75,7 @@ std::string jidprep(const std::string& original)
struct addrinfo* addr_res = nullptr; struct addrinfo* addr_res = nullptr;
const auto ret = ::getaddrinfo(domain, nullptr, &hints, &addr_res); const auto ret = ::getaddrinfo(domain, nullptr, &hints, &addr_res);
auto addrinfo_deleter = utils::make_scope_guard([addr_res] { freeaddrinfo(addr_res); }); auto addrinfo_deleter = utils::make_scope_guard([addr_res] { if (addr_res) freeaddrinfo(addr_res); });
if (ret || !addr_res || (addr_res->ai_family != AF_INET && addr_res->ai_family != AF_INET6)) if (ret || !addr_res || (addr_res->ai_family != AF_INET && addr_res->ai_family != AF_INET6))
{ // Not an IP, run nameprep on it { // Not an IP, run nameprep on it
rc = static_cast<Stringprep_rc>(::stringprep(domain, max_jid_part_len, rc = static_cast<Stringprep_rc>(::stringprep(domain, max_jid_part_len,