From: Justin Pettit Date: Wed, 23 Feb 2011 03:07:05 +0000 (-0800) Subject: nx-match: Don't fall through case when handling dest mcast mac addresses. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=811da49f926464b9cc3aab7e6ed5e1dfd223d4b2;p=openvswitch nx-match: Don't fall through case when handling dest mcast mac addresses. When an NXM wildcard entry that includes a multicast address is parsed, it would fall through to the next case statement, which would also set an inappropriate source mac address match. Coverity #10717 --- diff --git a/lib/nx-match.c b/lib/nx-match.c index abc3b210..4d2e590e 100644 --- a/lib/nx-match.c +++ b/lib/nx-match.c @@ -198,10 +198,12 @@ parse_nxm_entry(struct cls_rule *rule, const struct nxm_field *f, } else if (eth_addr_equals(mask, eth_mcast_1)) { wc->wildcards &= ~FWW_ETH_MCAST; flow->dl_dst[0] = *(uint8_t *) value & 0x01; + return 0; } else if (eth_addr_equals(mask, eth_mcast_0)) { wc->wildcards &= ~FWW_DL_DST; memcpy(flow->dl_dst, value, ETH_ADDR_LEN); flow->dl_dst[0] &= 0xfe; + return 0; } else if (eth_addr_equals(mask, eth_all_0s)) { return 0; } else if (eth_addr_equals(mask, eth_all_1s)) {