lwip/0172-IPV6-add-group-check-while-mld6-schedule-a-report.patch
yinbin eb405ae5cd bugfix: fix memery errors detected by cooddy
(cherry picked from commit 2e88021dd3023ae87fd8b57345447f8ca9e5ed83)
2024-10-18 15:03:40 +08:00

44 lines
1.5 KiB
Diff

From c73d8f324d14c2433d2a59724c2ea4ff7a9ea979 Mon Sep 17 00:00:00 2001
From: yinbin <yinbin8@huawei.com>
Date: Mon, 14 Oct 2024 15:45:07 +0800
Subject: [PATCH] IPV6: add group check while mld6 schedule a report
---
src/core/ipv6/mld6.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/src/core/ipv6/mld6.c b/src/core/ipv6/mld6.c
index 3aecb35..ffa2faf 100644
--- a/src/core/ipv6/mld6.c
+++ b/src/core/ipv6/mld6.c
@@ -292,11 +292,14 @@ mld6_input(struct pbuf *p, struct netif *inp)
ip6_addr_copy(group_addr, mld_v2_hdr->multicast_address);
group = mld6_lookfor_group(inp, &group_addr);
+ if (group == NULL) {
+ MLD6_STATS_INC(mld6.drop);
+ break;
+ }
+
if (0 == src_num) {
- if (group != NULL) {
- /* Schedule a report. */
- mld6_v2_delayed_report(group, lwip_ntohs(mld_v2_hdr->max_resp_delay));
- }
+ /* Schedule a report. */
+ mld6_v2_delayed_report(group, lwip_ntohs(mld_v2_hdr->max_resp_delay));
} else {
src_buf = (ip6_addr_p_t *)mem_malloc(src_buf_size);
if (src_buf == NULL) {
@@ -310,6 +313,7 @@ mld6_input(struct pbuf *p, struct netif *inp)
/* We interest! */
mld6_v2_delayed_report(group, lwip_ntohs(mld_v2_hdr->max_resp_delay));
}
+ mem_free(src_buf);
}
}
}
--
2.34.1