diff options
| author | Ben Pfaff <blp@nicira.com> | 2011-09-09 10:12:32 -0700 |
|---|---|---|
| committer | Ben Pfaff <blp@nicira.com> | 2011-09-09 16:40:16 -0700 |
| commit | 0d1fe4a36287a2e107f96e50a6ab3556da3726a3 (patch) | |
| tree | 0eacb32bfde5c973f93ff8493ca7c21c8057f179 /vswitchd | |
| parent | 1de11730e612b09e28892880c2845185497a3741 (diff) | |
| download | openvswitch-0d1fe4a36287a2e107f96e50a6ab3556da3726a3.tar.gz | |
bridge: Avoid reading uninitialized data in bridge_pick_local_hw_addr().
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.
Found by valgrind.
Diffstat (limited to 'vswitchd')
| -rw-r--r-- | vswitchd/bridge.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c index abea4f348..ba5fbc6fe 100644 --- a/vswitchd/bridge.c +++ b/vswitchd/bridge.c @@ -1080,7 +1080,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; |
