diff options
author | Mark Andrews <marka@isc.org> | 2019-07-04 10:38:24 +1000 |
---|---|---|
committer | Mark Andrews <marka@isc.org> | 2019-07-04 10:38:24 +1000 |
commit | 15fde544a91a8c52282460679c97243e4c280ba8 (patch) | |
tree | 27723025828c94f24d9039a9a1109e64c6b1b2c1 | |
parent | e82c02c01657c7073392aab0d17e3126c3c9207f (diff) | |
download | isc-dhcp-15fde544a91a8c52282460679c97243e4c280ba8.tar.gz |
Address memory leaks found by Coverity
CIDs 1448191, 1448193, 1448194, 1448195
-rw-r--r-- | server/confpars.c | 11 |
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; } |