• Paul Mundt's avatar
    [PATCH] fb: sm501fb off-by-1 sysfs store · 1f2b69f9
    Paul Mundt authored
    Currently sm501fb_crtsrc_store() won't allow the routing to be changed via
    echos from userspace in to the sysfs file.  The reason for this is that the
    strnicmp() for both heads uses a sizeof() for the string length, which ends
    up being strlen() + 1 (\0 in the normal case, but the echo gives a newline,
    which is where the issue occurs), this then causes a mismatch and
    subsequently bails with the -EINVAL.
    
    In addition to this, the hardcoded lengths were then used for the store
    length that was returned, which ended up being erroneous and resulting in a
    write error.  There's also no point in returning anything but the full
    length since it will -EINVAL out on a mismatch well before then anyways.
    
    sizeof("string") is great for making sure you have space in your buffer,
    but rather less so for string comparisons :-)
    Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
    Acked-by: default avatarBen Dooks <ben-linux@fluff.org>
    Cc: "Antonino A. Daplas" <adaplas@pol.net>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    1f2b69f9
sm501fb.c 40.8 KB