[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