From 26e5b3af274be63234b6ba72b0f01baeb6a5f905 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Mon, 2 Jun 2008 10:13:23 -0700 Subject: [PATCH] Avoid wild pointer write in del_switch_port(). --- datapath/datapath.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/datapath/datapath.c b/datapath/datapath.c index 4b706499..c87fa241 100644 --- a/datapath/datapath.c +++ b/datapath/datapath.c @@ -387,7 +387,8 @@ static int del_switch_port(struct net_bridge_port *p) dev_set_promiscuity(p->dev, -1); rtnl_unlock(); list_del_rcu(&p->node); - rcu_assign_pointer(p->dp->ports[p->port_no], NULL); + if (p->port_no != OFPP_LOCAL) + rcu_assign_pointer(p->dp->ports[p->port_no], NULL); rcu_assign_pointer(p->dev->br_port, NULL); /* Then wait until no one is still using it, and destroy it. */ -- 2.30.2