[ovs-git] Open vSwitch: ofproto: Fix use-after-free error when ports disappear. (branch-1.2)
dev at openvswitch.org
dev at openvswitch.org
Mon Apr 23 21:07:45 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.2 has been updated
via 7d09d61fac2c19d23b7b3cee501a4404220c9f46 (commit)
from c38e95a3368d68e66387796c26708516f69bcc94 (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 7d09d61fac2c19d23b7b3cee501a4404220c9f46
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=7d09d61fac2c19d23b7b3cee501a4404220c9f46
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