Skip to content
This repository was archived by the owner on Aug 13, 2025. It is now read-only.

Commit a5e23c3

Browse files
author
Arаm Sаrgsyаn
committed
Merge branch 'aram/dns_fwdtable_addfwd-cleanup-bugfix' into 'main'
Fix dns_fwdtable_addfwd() error path cleanup bug See merge request isc-projects/bind9!7205
2 parents 40077f6 + cf4003f commit a5e23c3

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

lib/dns/forward.c

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ dns_fwdtable_create(isc_mem_t *mctx, dns_fwdtable_t **fwdtablep) {
4545

4646
REQUIRE(fwdtablep != NULL && *fwdtablep == NULL);
4747

48-
fwdtable = isc_mem_get(mctx, sizeof(dns_fwdtable_t));
48+
fwdtable = isc_mem_get(mctx, sizeof(*fwdtable));
4949

5050
fwdtable->table = NULL;
5151
result = dns_rbt_create(mctx, auto_detach, fwdtable, &fwdtable->table);
@@ -62,7 +62,7 @@ dns_fwdtable_create(isc_mem_t *mctx, dns_fwdtable_t **fwdtablep) {
6262
return (ISC_R_SUCCESS);
6363

6464
cleanup_fwdtable:
65-
isc_mem_put(mctx, fwdtable, sizeof(dns_fwdtable_t));
65+
isc_mem_put(mctx, fwdtable, sizeof(*fwdtable));
6666

6767
return (result);
6868
}
@@ -76,13 +76,13 @@ dns_fwdtable_addfwd(dns_fwdtable_t *fwdtable, const dns_name_t *name,
7676

7777
REQUIRE(VALID_FWDTABLE(fwdtable));
7878

79-
forwarders = isc_mem_get(fwdtable->mctx, sizeof(dns_forwarders_t));
79+
forwarders = isc_mem_get(fwdtable->mctx, sizeof(*forwarders));
8080

8181
ISC_LIST_INIT(forwarders->fwdrs);
8282
for (fwd = ISC_LIST_HEAD(*fwdrs); fwd != NULL;
8383
fwd = ISC_LIST_NEXT(fwd, link))
8484
{
85-
nfwd = isc_mem_get(fwdtable->mctx, sizeof(dns_forwarder_t));
85+
nfwd = isc_mem_get(fwdtable->mctx, sizeof(*nfwd));
8686
*nfwd = *fwd;
8787
ISC_LINK_INIT(nfwd, link);
8888
ISC_LIST_APPEND(forwarders->fwdrs, nfwd, link);
@@ -103,9 +103,9 @@ dns_fwdtable_addfwd(dns_fwdtable_t *fwdtable, const dns_name_t *name,
103103
while (!ISC_LIST_EMPTY(forwarders->fwdrs)) {
104104
fwd = ISC_LIST_HEAD(forwarders->fwdrs);
105105
ISC_LIST_UNLINK(forwarders->fwdrs, fwd, link);
106-
isc_mem_put(fwdtable->mctx, fwd, sizeof(isc_sockaddr_t));
106+
isc_mem_put(fwdtable->mctx, fwd, sizeof(*fwd));
107107
}
108-
isc_mem_put(fwdtable->mctx, forwarders, sizeof(dns_forwarders_t));
108+
isc_mem_put(fwdtable->mctx, forwarders, sizeof(*forwarders));
109109
return (result);
110110
}
111111

@@ -119,13 +119,13 @@ dns_fwdtable_add(dns_fwdtable_t *fwdtable, const dns_name_t *name,
119119

120120
REQUIRE(VALID_FWDTABLE(fwdtable));
121121

122-
forwarders = isc_mem_get(fwdtable->mctx, sizeof(dns_forwarders_t));
122+
forwarders = isc_mem_get(fwdtable->mctx, sizeof(*forwarders));
123123

124124
ISC_LIST_INIT(forwarders->fwdrs);
125125
for (sa = ISC_LIST_HEAD(*addrs); sa != NULL;
126126
sa = ISC_LIST_NEXT(sa, link))
127127
{
128-
fwd = isc_mem_get(fwdtable->mctx, sizeof(dns_forwarder_t));
128+
fwd = isc_mem_get(fwdtable->mctx, sizeof(*fwd));
129129
fwd->addr = *sa;
130130
ISC_LINK_INIT(fwd, link);
131131
ISC_LIST_APPEND(forwarders->fwdrs, fwd, link);
@@ -146,9 +146,9 @@ dns_fwdtable_add(dns_fwdtable_t *fwdtable, const dns_name_t *name,
146146
while (!ISC_LIST_EMPTY(forwarders->fwdrs)) {
147147
fwd = ISC_LIST_HEAD(forwarders->fwdrs);
148148
ISC_LIST_UNLINK(forwarders->fwdrs, fwd, link);
149-
isc_mem_put(fwdtable->mctx, fwd, sizeof(dns_forwarder_t));
149+
isc_mem_put(fwdtable->mctx, fwd, sizeof(*fwd));
150150
}
151-
isc_mem_put(fwdtable->mctx, forwarders, sizeof(dns_forwarders_t));
151+
isc_mem_put(fwdtable->mctx, forwarders, sizeof(*forwarders));
152152
return (result);
153153
}
154154

@@ -193,7 +193,7 @@ dns_fwdtable_destroy(dns_fwdtable_t **fwdtablep) {
193193
isc_rwlock_destroy(&fwdtable->rwlock);
194194
fwdtable->magic = 0;
195195

196-
isc_mem_putanddetach(&fwdtable->mctx, fwdtable, sizeof(dns_fwdtable_t));
196+
isc_mem_putanddetach(&fwdtable->mctx, fwdtable, sizeof(*fwdtable));
197197
}
198198

199199
/***
@@ -211,7 +211,7 @@ auto_detach(void *data, void *arg) {
211211
while (!ISC_LIST_EMPTY(forwarders->fwdrs)) {
212212
fwd = ISC_LIST_HEAD(forwarders->fwdrs);
213213
ISC_LIST_UNLINK(forwarders->fwdrs, fwd, link);
214-
isc_mem_put(fwdtable->mctx, fwd, sizeof(dns_forwarder_t));
214+
isc_mem_put(fwdtable->mctx, fwd, sizeof(*fwd));
215215
}
216-
isc_mem_put(fwdtable->mctx, forwarders, sizeof(dns_forwarders_t));
216+
isc_mem_put(fwdtable->mctx, forwarders, sizeof(*forwarders));
217217
}

0 commit comments

Comments
 (0)