From 5c828bc1f24fb5222d6bb634d8e5228ed8b138f0 Mon Sep 17 00:00:00 2001 From: Benoît Ganne Date: Fri, 27 Sep 2019 18:08:22 +0200 Subject: bonding: fix non-null-terminated C-string MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Type: fix Change-Id: Ibb7ba878b049b8b18e890c43fdd6324cb88d63b8 Signed-off-by: Benoît Ganne --- src/vnet/bonding/cli.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/vnet/bonding') diff --git a/src/vnet/bonding/cli.c b/src/vnet/bonding/cli.c index 2acc670a33d..604cb80c936 100644 --- a/src/vnet/bonding/cli.c +++ b/src/vnet/bonding/cli.c @@ -197,7 +197,9 @@ bond_dump_ifs (bond_interface_details_t ** out_bondifs) hi = vnet_get_hw_interface (vnm, bif->hw_if_index); clib_memcpy(bondif->interface_name, hi->name, MIN (ARRAY_LEN (bondif->interface_name) - 1, - strlen ((const char *) hi->name))); + vec_len ((const char *) hi->name))); + /* enforce by memset() above */ + ASSERT(0 == bondif->interface_name[ARRAY_LEN (bondif->interface_name) - 1]); bondif->mode = bif->mode; bondif->lb = bif->lb; bondif->numa_only = bif->numa_only; @@ -239,7 +241,11 @@ bond_dump_slave_ifs (slave_interface_details_t ** out_slaveifs, hi = vnet_get_hw_interface (vnm, sw->hw_if_index); clib_memcpy (slaveif->interface_name, hi->name, MIN (ARRAY_LEN (slaveif->interface_name) - 1, - strlen ((const char *) hi->name))); + vec_len ((const char *) hi->name))); + /* enforce by memset() above */ + ASSERT (0 == + slaveif->interface_name[ARRAY_LEN (slaveif->interface_name) - + 1]); slaveif->sw_if_index = sif->sw_if_index; slaveif->is_passive = sif->is_passive; slaveif->is_long_timeout = sif->is_long_timeout; -- cgit 1.2.3-korg