• Pali Rohár's avatar
    ppp: Fix generating ifname when empty IFLA_IFNAME is specified · 2459dcb9
    Pali Rohár authored
    IFLA_IFNAME is nul-term string which means that IFLA_IFNAME buffer can be
    larger than length of string which contains.
    
    Function __rtnl_newlink() generates new own ifname if either IFLA_IFNAME
    was not specified at all or userspace passed empty nul-term string.
    
    It is expected that if userspace does not specify ifname for new ppp netdev
    then kernel generates one in format "ppp<id>" where id matches to the ppp
    unit id which can be later obtained by PPPIOCGUNIT ioctl.
    
    And it works in this way if IFLA_IFNAME is not specified at all. But it
    does not work when IFLA_IFNAME is specified with empty string.
    
    So fix this logic also for empty IFLA_IFNAME in ppp_nl_newlink() function
    and correctly generates ifname based on ppp unit identifier if userspace
    did not provided preferred ifname.
    
    Without this patch when IFLA_IFNAME was specified with empty string then
    kernel created a new ppp interface in format "ppp<id>" but id did not
    match ppp unit id returned by PPPIOCGUNIT ioctl. In this case id was some
    number generated by __rtnl_newlink() function.
    Signed-off-by: default avatarPali Rohár <pali@kernel.org>
    Fixes: bb8082f6 ("ppp: build ifname using unit identifier for rtnl based devices")
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    2459dcb9
ppp_generic.c 84.6 KB