net: prevent of emerging cross-namespace symlinks
authorAlexander Y. Fomichev <git.user@gmail.com>
Mon, 25 Aug 2014 12:26:45 +0000 (16:26 +0400)
committerDavid S. Miller <davem@davemloft.net>
Mon, 25 Aug 2014 22:17:43 +0000 (15:17 -0700)
commit4c75431ac3520631f1d9e74aa88407e6374dbbc4
treef56e6a2cbb2622fbe24b1325f7800fd9d0b4305a
parenta45e92a599e77ee6a850eabdd0141633fde03915
net: prevent of emerging cross-namespace symlinks

Code manipulating sysfs symlinks on adjacent net_devices(s)
currently doesn't take into account that devices potentially
belong to different namespaces.

This patch trying to fix an issue as follows:
- check for net_ns before creating / deleting symlink.
  for now only netdev_adjacent_rename_links and
  __netdev_adjacent_dev_remove are affected, afaics
  __netdev_adjacent_dev_insert implies both net_devs
  belong to the same namespace.
- Drop all existing symlinks to / from all adj_devs before
  switching namespace and recreate them just after.

Signed-off-by: Alexander Y. Fomichev <git.user@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/dev.c