Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ISC Open Source Projects
BIND
Commits
d554d4d1
Commit
d554d4d1
authored
Apr 05, 2000
by
Brian Wellington
Browse files
Actually free the dst keys & keynodes when the keytable is destroyed.
parent
97645c13
Changes
1
Hide whitespace changes
Inline
Side-by-side
lib/dns/keytable.c
View file @
d554d4d1
...
...
@@ -32,6 +32,8 @@
#include <dns/name.h>
#include <dns/rbt.h>
#include <dst/dst.h>
struct
dns_keytable
{
/* Unlocked. */
unsigned
int
magic
;
...
...
@@ -57,6 +59,16 @@ struct dns_keynode {
#define KEYNODE_MAGIC 0x4b4e6f64U
/* KNod */
#define VALID_KEYNODE(kn) ISC_MAGIC_VALID(kn, KEYNODE_MAGIC)
static
void
free_keynode
(
void
*
node
,
void
*
arg
)
{
dns_keynode_t
*
keynode
=
node
;
isc_mem_t
*
mctx
=
arg
;
REQUIRE
(
VALID_KEYNODE
(
keynode
));
dst_key_free
(
keynode
->
key
);
isc_mem_put
(
mctx
,
keynode
,
sizeof
(
dns_keynode_t
));
}
isc_result_t
dns_keytable_create
(
isc_mem_t
*
mctx
,
dns_keytable_t
**
keytablep
)
{
dns_keytable_t
*
keytable
;
...
...
@@ -73,7 +85,7 @@ dns_keytable_create(isc_mem_t *mctx, dns_keytable_t **keytablep) {
return
(
DNS_R_NOMEMORY
);
keytable
->
table
=
NULL
;
result
=
dns_rbt_create
(
mctx
,
NULL
,
NULL
,
&
keytable
->
table
);
result
=
dns_rbt_create
(
mctx
,
free_keynode
,
mctx
,
&
keytable
->
table
);
if
(
result
!=
ISC_R_SUCCESS
)
goto
cleanup_keytable
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment