bridge: fix crash when set mac address of br interface
When I tried to set mac address of a bridge interface to a mac address which already learned on this bridge, I got system hang. The cause is straight forward: function br_fdb_change_mac_address calls fdb_insert with NULL source nbp. Then an fdb lookup is performed. If an fdb entry is found and it's local, it's OK. But if it's not local, source is dereferenced for printk without NULL check. Signed-off-by: Hong Zhiguo <honkiko@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
4a7df340ed
commit
9b46922e15
|
@ -423,7 +423,7 @@ static int fdb_insert(struct net_bridge *br, struct net_bridge_port *source,
|
|||
return 0;
|
||||
br_warn(br, "adding interface %s with same address "
|
||||
"as a received packet\n",
|
||||
source->dev->name);
|
||||
source ? source->dev->name : br->dev->name);
|
||||
fdb_delete(br, fdb);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue