bridge: Always delete the correct interfaces in port_del_ifaces().
authorBen Pfaff <blp@nicira.com>
Fri, 18 Mar 2011 17:56:28 +0000 (10:56 -0700)
committerBen Pfaff <blp@nicira.com>
Mon, 21 Mar 2011 16:35:35 +0000 (09:35 -0700)
commit13f5f5b05ac13bc9614a63593a026ca7c19e4568
treef44759d122eee938d8445eb0c2f5887b25676045
parente7934396351524d390b5f1d5f1de1a6694b4144f
bridge: Always delete the correct interfaces in port_del_ifaces().

This code was checking a name from cfg->interfaces[i] but using the result
to decide whether to delete port->ifaces[i].  The two arrays aren't
necessarily in the same order so this code could delete the wrong iface.

Found by inspection.  This is probably not a common problem in practice
because I imagine that deleting an interface from a bond, without deleting
the bond itself, is a rare operation.  The problem would also be
intermittent--after a few switch reconfiguration cycles I imagine that
the problem would resolve.
vswitchd/bridge.c