summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Andrews <marka@isc.org>2019-07-04 10:38:24 +1000
committerMark Andrews <marka@isc.org>2019-07-04 10:38:24 +1000
commit15fde544a91a8c52282460679c97243e4c280ba8 (patch)
tree27723025828c94f24d9039a9a1109e64c6b1b2c1
parente82c02c01657c7073392aab0d17e3126c3c9207f (diff)
downloadisc-dhcp-15fde544a91a8c52282460679c97243e4c280ba8.tar.gz
Address memory leaks found by Coverity
CIDs 1448191, 1448193, 1448194, 1448195
-rw-r--r--server/confpars.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/server/confpars.c b/server/confpars.c
index 7ad28d55..1454aec3 100644
--- a/server/confpars.c
+++ b/server/confpars.c
@@ -3578,6 +3578,10 @@ int parse_lease_declaration (struct lease **lp, struct parse *cfile)
if (token != EQUAL) {
parse_warn (cfile,
"expecting '=' in set statement.");
+ if (newbinding) {
+ dfree(binding->name, MDL);
+ dfree(binding, MDL);
+ }
goto badset;
}
}
@@ -3585,6 +3589,10 @@ int parse_lease_declaration (struct lease **lp, struct parse *cfile)
if (!parse_binding_value(cfile, nv)) {
binding_value_dereference(&nv, MDL);
lease_dereference(&lease, MDL);
+ if (newbinding) {
+ dfree(binding->name, MDL);
+ dfree(binding, MDL);
+ }
return 0;
}
@@ -4762,6 +4770,7 @@ parse_ia_na_declaration(struct parse *cfile) {
if (token != LBRACE) {
parse_warn(cfile, "corrupt lease file; expecting left brace");
skip_to_semi(cfile);
+ ia_dereference(&ia, MDL);
return;
}
@@ -5209,6 +5218,7 @@ parse_ia_ta_declaration(struct parse *cfile) {
if (token != LBRACE) {
parse_warn(cfile, "corrupt lease file; expecting left brace");
skip_to_semi(cfile);
+ ia_dereference(&ia, MDL);
return;
}
@@ -5646,6 +5656,7 @@ parse_ia_pd_declaration(struct parse *cfile) {
if (token != LBRACE) {
parse_warn(cfile, "corrupt lease file; expecting left brace");
skip_to_semi(cfile);
+ ia_dereference(&ia, MDL);
return;
}