• Rasmus Villemoes's avatar
    leds: trigger: netdev: use memcpy in device_name_store · 90934643
    Rasmus Villemoes authored
    If userspace doesn't end the input with a newline (which can easily
    happen if the write happens from a C program that does write(fd,
    iface, strlen(iface))), we may end up including garbage from a
    previous, longer value in the device_name. For example
    
    # cat device_name
    
    # printf 'eth12' > device_name
    # cat device_name
    eth12
    # printf 'eth3' > device_name
    # cat device_name
    eth32
    
    I highly doubt anybody is relying on this behaviour, so switch to
    simply copying the bytes (we've already checked that size is <
    IFNAMSIZ) and unconditionally zero-terminate it; of course, we also
    still have to strip a trailing newline.
    
    This is also preparation for future patches.
    
    Fixes: 06f502f5 ("leds: trigger: Introduce a NETDEV trigger")
    Signed-off-by: default avatarRasmus Villemoes <linux@rasmusvillemoes.dk>
    Acked-by: default avatarPavel Machek <pavel@ucw.cz>
    Signed-off-by: default avatarJacek Anaszewski <jacek.anaszewski@gmail.com>
    90934643
ledtrig-netdev.c 11.2 KB