[ovs-dev] [PATCH] bridge: Avoid reading uninitialized data in bridge_pick_local_hw_addr().
Ben Pfaff
blp at nicira.com
Fri Sep 9 17:10:57 UTC 2011
Commit 3a48ace3 "bridge: Make bridge_pick_local_hw_addr() easier to reason"
didn't initialize 'ea' before trying to compare against it. We need to
check that an address has been found.
---
vswitchd/bridge.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c
index 2bfd926..e1ca17a 100644
--- a/vswitchd/bridge.c
+++ b/vswitchd/bridge.c
@@ -1077,7 +1077,7 @@ bridge_pick_local_hw_addr(struct bridge *br, uint8_t ea[ETH_ADDR_LEN],
!eth_addr_is_local(iface_ea) &&
!eth_addr_is_reserved(iface_ea) &&
!eth_addr_is_zero(iface_ea) &&
- eth_addr_compare_3way(iface_ea, ea) < 0)
+ (!found_addr || eth_addr_compare_3way(iface_ea, ea) < 0))
{
memcpy(ea, iface_ea, ETH_ADDR_LEN);
*hw_addr_iface = iface;
--
1.7.4.4
More information about the dev
mailing list