From cb418ab4800f3693742ec7a4f0f63e3368787d8a Mon Sep 17 00:00:00 2001 From: dmiller Date: Fri, 21 Jun 2019 17:00:09 +0000 Subject: [PATCH] Fix a memory leak of 104 bytes per hostname resolved. --- TargetGroup.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/TargetGroup.cc b/TargetGroup.cc index 9ea95d612..d074f3de1 100644 --- a/TargetGroup.cc +++ b/TargetGroup.cc @@ -861,7 +861,12 @@ int TargetGroup::get_next_host(struct sockaddr_storage *ss, size_t *sslen) { limit it to exactly one address). */ NetBlock *netblock_resolved = this->netblock->resolve(); if (netblock_resolved != NULL) { - this->netblock = netblock_resolved; + /* resolve may return the original netblock if it's not a type that needs + * to be resolved. Don't delete it! */ + if (netblock_resolved != this->netblock) { + delete this->netblock; + this->netblock = netblock_resolved; + } } else { error("Failed to resolve \"%s\".", this->netblock->hostname.c_str());