Page MenuHomeFreeBSD

D43135.diff
No OneTemporary

D43135.diff

diff --git a/lib/libifconfig/libifconfig_bridge.c b/lib/libifconfig/libifconfig_bridge.c
--- a/lib/libifconfig/libifconfig_bridge.c
+++ b/lib/libifconfig/libifconfig_bridge.c
@@ -111,7 +111,7 @@
free(bridge);
return (-1);
}
- if (members.ifbic_len <= len)
+ if ((members.ifbic_len + sizeof(*members.ifbic_req)) < len)
break;
}
if (buf == NULL) {
diff --git a/tests/sys/net/if_bridge_test.sh b/tests/sys/net/if_bridge_test.sh
--- a/tests/sys/net/if_bridge_test.sh
+++ b/tests/sys/net/if_bridge_test.sh
@@ -663,6 +663,33 @@
vnet_cleanup
}
+atf_test_case "many_bridge_members" "cleanup"
+many_bridge_members_head()
+{
+ atf_set descr 'many_bridge_members ifconfig test'
+ atf_set require.user root
+}
+
+many_bridge_members_body()
+{
+ vnet_init
+
+ bridge=$(vnet_mkbridge)
+ ifcount=256
+ for _ in $(seq 1 $ifcount); do
+ epair=$(vnet_mkepair)
+ ifconfig "${bridge}" addm "${epair}"a
+ done
+
+ atf_check -s exit:0 -o inline:"$ifcount\n" \
+ sh -c "ifconfig ${bridge} | grep member: | wc -l | xargs"
+}
+
+many_bridge_members_cleanup()
+{
+ vnet_cleanup
+}
+
atf_init_test_cases()
{
atf_add_test_case "bridge_transmit_ipv4_unicast"
@@ -677,4 +704,5 @@
atf_add_test_case "gif"
atf_add_test_case "mtu"
atf_add_test_case "vlan"
+ atf_add_test_case "many_bridge_members"
}

File Metadata

Mime Type
text/plain
Expires
Tue, Feb 4, 4:09 PM (18 h, 20 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16457198
Default Alt Text
D43135.diff (1 KB)

Event Timeline