summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2017-10-07 08:53:35 -0400
committerDonald Sharp <sharpd@cumulusnetworks.com>2017-10-10 12:27:17 -0400
commita3acf37dc262f7f91fbda00d242af64e89b425c8 (patch)
tree0bb3e00845280e29093e41f7ffd8f4943e5fbc61
parent5d920111b9d5b460052a257656f58d8c093c236f (diff)
isisd: Fix leaked memory in error case
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
-rw-r--r--isisd/isis_pdu.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/isisd/isis_pdu.c b/isisd/isis_pdu.c
index be989cbabb..9c68fe5966 100644
--- a/isisd/isis_pdu.c
+++ b/isisd/isis_pdu.c
@@ -1546,8 +1546,11 @@ int send_hello(struct isis_circuit *circuit, int level)
isis_tlvs_add_auth(tlvs, &circuit->passwd);
- if (!listcount(circuit->area->area_addrs))
+ if (!listcount(circuit->area->area_addrs)) {
+ isis_free_tlvs(tlvs);
return ISIS_WARNING;
+ }
+
isis_tlvs_add_area_addresses(tlvs, circuit->area->area_addrs);
if (circuit->circ_type == CIRCUIT_T_BROADCAST)