[ovs-dev] [coverity3 01/13] bridge: Ethernet address is 6 bytes, not 4 or 8.

Ben Pfaff blp at nicira.com
Wed Feb 23 21:24:44 UTC 2011


'ea' here is a function parameter declared as an array, so "sizeof ea" is
sizeof(uint8_t *), which is either 4 or 8.

Coverity #10689, 10735.
---
 vswitchd/bridge.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c
index c2c4579..a448e05 100644
--- a/vswitchd/bridge.c
+++ b/vswitchd/bridge.c
@@ -981,7 +981,7 @@ bridge_pick_local_hw_addr(struct bridge *br, uint8_t ea[ETH_ADDR_LEN],
 
     /* Otherwise choose the minimum non-local MAC address among all of the
      * interfaces. */
-    memset(ea, 0xff, sizeof ea);
+    memset(ea, 0xff, ETH_ADDR_LEN);
     for (i = 0; i < br->n_ports; i++) {
         struct port *port = br->ports[i];
         uint8_t iface_ea[ETH_ADDR_LEN];
-- 
1.7.2.3





More information about the dev mailing list