[ovs-git] Open vSwitch: ofproto: Fix use-after-free error when ports disappear. (branch-1.4)
dev at openvswitch.org
dev at openvswitch.org
Mon Apr 23 21:02:52 UTC 2012
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Open vSwitch".
The branch, branch-1.4 has been updated
via 87096e18f7c1012a47799d9f23be3bfec0174600 (commit)
from 57250b7a198a097ecf7e89bc674cda3061118759 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 87096e18f7c1012a47799d9f23be3bfec0174600
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=87096e18f7c1012a47799d9f23be3bfec0174600
Author: Ben Pfaff <blp at nicira.com>
ofproto: Fix use-after-free error when ports disappear.
update_port() can delete the port for which it is called, if the underlying
network device has been destroyed, so HMAP_FOR_EACH is unsafe in
ofproto_run().
Less obviously, update_port() can delete unrelated ports. For example,
suppose that initially device A is port 1 and device B is port 2. If
update_port("A") runs just after this, then it will ofport_remove() both
ports, then ofport_install() A as the new port 2.
So this commit first assembles a list of ports to update, then updates them
in a separate loop.
Without this commit, running "ovs-dpctl del-dp" while ovs-vswitchd is
running consistently causes a crash for me within a few seconds.
Signed-off-by: Ben Pfaff <blp at nicira.com>
-----------------------------------------------------------------------
Summary of changes:
ofproto/ofproto.c | 18 ++++++++++++++++--
1 files changed, 16 insertions(+), 2 deletions(-)
hooks/post-receive
--
Open vSwitch
More information about the git
mailing list