mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-11-22 11:20:59 +01:00
BUG/MINOR: resolvers: Fix condition to release received ARs if not assigned
At the end of resolv_validate_dns_response(), if a received additionnal record is not assigned to an existing server record, it is released. But the condition to do so is buggy. If "answer_record" (the received AR) is not assigned, "tmp_record" is not a valid record object. It is just a dummy record "representing" the head of the record list. Now, the condition is far cleaner. This patch must be backported as far as 2.2.
This commit is contained in:
parent
5926e384e6
commit
9c246a4b6c
@ -1238,12 +1238,14 @@ static int resolv_validate_dns_response(unsigned char *resp, unsigned char *bufe
|
|||||||
if (tmp_record->ar_item)
|
if (tmp_record->ar_item)
|
||||||
pool_free(resolv_answer_item_pool, tmp_record->ar_item);
|
pool_free(resolv_answer_item_pool, tmp_record->ar_item);
|
||||||
tmp_record->ar_item = answer_record;
|
tmp_record->ar_item = answer_record;
|
||||||
|
answer_record = NULL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (tmp_record->ar_item != answer_record)
|
if (answer_record) {
|
||||||
pool_free(resolv_answer_item_pool, answer_record);
|
pool_free(resolv_answer_item_pool, answer_record);
|
||||||
answer_record = NULL;
|
answer_record = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} /* for i 0 to arcount */
|
} /* for i 0 to arcount */
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user