• Nicolas Dichtel's avatar
    net: enable interface alias removal via rtnl · 2459b4c6
    Nicolas Dichtel authored
    IFLA_IFALIAS is defined as NLA_STRING. It means that the minimal length of
    the attribute is 1 ("\0"). However, to remove an alias, the attribute
    length must be 0 (see dev_set_alias()).
    
    Let's define the type to NLA_BINARY to allow 0-length string, so that the
    alias can be removed.
    
    Example:
    $ ip l s dummy0 alias foo
    $ ip l l dev dummy0
    5: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
        link/ether ae:20:30:4f:a7:f3 brd ff:ff:ff:ff:ff:ff
        alias foo
    
    Before the patch:
    $ ip l s dummy0 alias ""
    RTNETLINK answers: Numerical result out of range
    
    After the patch:
    $ ip l s dummy0 alias ""
    $ ip l l dev dummy0
    5: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
        link/ether ae:20:30:4f:a7:f3 brd ff:ff:ff:ff:ff:ff
    
    CC: Oliver Hartkopp <oliver@hartkopp.net>
    CC: Stephen Hemminger <stephen@networkplumber.org>
    Fixes: 96ca4a2c ("net: remove ifalias on empty given alias")
    Reported-by: default avatarJulien FLoret <julien.floret@6wind.com>
    Signed-off-by: default avatarNicolas Dichtel <nicolas.dichtel@6wind.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    2459b4c6
rtnetlink.c 105 KB