bridge: Ethernet address is 6 bytes, not 4 or 8.
authorBen Pfaff <blp@nicira.com>
Wed, 23 Feb 2011 19:21:52 +0000 (11:21 -0800)
committerBen Pfaff <blp@nicira.com>
Wed, 23 Feb 2011 21:36:59 +0000 (13:36 -0800)
'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

index c2c4579..a448e05 100644 (file)
@@ -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];