X-Git-Url: https://git.distorted.org.uk/~mdw/adns/blobdiff_plain/eed63b97b8d529bb49d1ee8ebe30033103b3b959..914a5ff5342e43d8a2378b1f0f65057ef084fe20:/src/setup.c diff --git a/src/setup.c b/src/setup.c index dca8a19..e19a705 100644 --- a/src/setup.c +++ b/src/setup.c @@ -62,6 +62,11 @@ static void addserver(adns_state ads, struct in_addr addr) { ads->nservers++; } +static void freesearchlist(adns_state ads) { + if (ads->nsearchlist) free(*ads->searchlist); + free(ads->searchlist); +} + static void saveerr(adns_state ads, int en) { if (!ads->configerrno) ads->configerrno= en; } @@ -133,7 +138,7 @@ static void ccf_search(adns_state ads, const char *fn, int lno, const char *buf) *newchars++ = 0; } - free(ads->searchlist); + freesearchlist(ads); ads->nsearchlist= count; ads->searchlist= newptrs; } @@ -591,6 +596,7 @@ void adns_finish(adns_state ads) { if (ads->tcpsocket >= 0) close(ads->tcpsocket); adns__vbuf_free(&ads->tcpsend); adns__vbuf_free(&ads->tcprecv); + freesearchlist(ads); free(ads); }