[SRU][Bionic/Cosmic/Unstable][PATCH 0/1] Fix regression in 'ip --family bridge neigh' since Linux v4.12

Mauricio Faria de Oliveira mfo at canonical.com
Mon Oct 8 20:07:28 UTC 2018

BugLink: https://bugs.launchpad.net/bugs/1796748


 * Netlink RTM_GETNEIGH requests for PF_BRIDGE are broken since linux  v4.12.

 * Users, tools (e.g., iproute2), and libraries (e.g., go netlink) that use
   such request/family currently receive nothing back in the kernel response.

 * The upstream fix resolves the breakage in the userspace-kernel interface
   by explicitly checking for the old/broken request to ensure it's replied.

[Test Case]

 * The command 'ip --family bridge neigh' returns nothing on broken kernels,
   and matches 'bridge fdb show' on fixed kernels.

 * Before:

    $ ip --family bridge neigh

 * After:

    $ ip --family bridge neigh
    dev ens3 lladdr 33:33:00:00:00:01 PERMANENT
    dev ens3 lladdr 01:00:5e:00:00:01 PERMANENT
    dev ens3 lladdr 33:33:ff:e9:9d:60 PERMANENT

 * Reference:

    $ bridge fdb show
    33:33:00:00:00:01 dev ens3 self permanent
    01:00:5e:00:00:01 dev ens3 self permanent
    33:33:ff:e9:9d:60 dev ens3 self permanent

[Regression Potential]

 * Low, for three reasons:

 * The fix is fairly contained (RTM_GETNEIGH request for PF_BRIDGE family).

 * The checks introduced by the fix are conservative, based on the size
   of the old request (the size of the old/new requests are different),
   and it does nothing different in case the (old) size doesn't match.

 * Given the above, only applications with message length and contents
   specially hand-crafted (and likely not valid nor useful) might fail.
   To the best of my knowledge, this is not the common case out there.

[Other Info]

 * The patch is only applicable to v4.12+ (so not Trusty nor Xenial).

 * The patch is the same for Bionic, Cosmic, and unstable.

 * Upstream commit: bd961c9bc664 ("rtnetlink: fix rtnl_fdb_dump() for
   ndmsg header")

Mauricio Faria de Oliveira (1):
  rtnetlink: fix rtnl_fdb_dump() for ndmsg header

 net/core/rtnetlink.c | 29 ++++++++++++++++++++---------
 1 file changed, 20 insertions(+), 9 deletions(-)


More information about the kernel-team mailing list