diff --git a/src/vnsw/agent/services/multicast/grpmgmt/gmp_addrlist.c b/src/vnsw/agent/services/multicast/grpmgmt/gmp_addrlist.c index 6c9bd5dba57..d3afd7e5f88 100644 --- a/src/vnsw/agent/services/multicast/grpmgmt/gmp_addrlist.c +++ b/src/vnsw/agent/services/multicast/grpmgmt/gmp_addrlist.c @@ -490,8 +490,10 @@ gmp_lookup_create_addr_cat_entry (gmp_addr_catalog *catalog, memmove(cat_entry->adcat_ent_addr.gmp_addr, addr, catalog->adcat_addrlen); cat_entry->adcat_ent_ord = ord_get_ordinal(catalog->adcat_ord_handle); - if (cat_entry->adcat_ent_ord == ORD_BAD_ORDINAL) + if (cat_entry->adcat_ent_ord == ORD_BAD_ORDINAL) { + free(cat_entry); return ORD_BAD_ORDINAL; /* Out of memory */ + } /* Add it to the patricia trees. */ diff --git a/src/vnsw/agent/services/multicast/grpmgmt/igmp_protocol.c b/src/vnsw/agent/services/multicast/grpmgmt/igmp_protocol.c index 604719321c2..87500111b86 100644 --- a/src/vnsw/agent/services/multicast/grpmgmt/igmp_protocol.c +++ b/src/vnsw/agent/services/multicast/grpmgmt/igmp_protocol.c @@ -1327,8 +1327,10 @@ igmp_parse_v3_report_packet(igmp_packet *packet, gmp_packet *gen_packet, /* Enqueue an address thread entry for the next address. */ if (gmp_enqueue_addr_thread_addr(addr_thread, addr_ptr, - IPV4_ADDR_LEN) < 0) + IPV4_ADDR_LEN) < 0) { + free(addr_thread); return FALSE; /* Out of memory */ + } addr_ptr += IPV4_ADDR_LEN; } group_rcrd->gmp_rpt_rcv_srcs = addr_thread;