auxdisplay: lcd2s: Fix lcd2s_redefine_char() feature
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 23 Feb 2022 15:47:16 +0000 (17:47 +0200)
committerMiguel Ojeda <ojeda@kernel.org>
Wed, 2 Mar 2022 23:29:26 +0000 (00:29 +0100)
It seems that the lcd2s_redefine_char() has never been properly
tested. The buffer is filled by DEF_CUSTOM_CHAR command followed
by the character number (from 0 to 7), but immediately after that
these bytes are rewritten by the decoded hex stream.

Fix the index to fill the buffer after the command and number.

Fixes: 8c9108d014c5 ("auxdisplay: add a driver for lcd2s character display")
Cc: Lars Poeschel <poeschel@lemonage.de>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
[fixed typo in commit message]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
drivers/auxdisplay/lcd2s.c

index 38ba086..ea9d75a 100644 (file)
@@ -238,7 +238,7 @@ static int lcd2s_redefine_char(struct charlcd *lcd, char *esc)
        if (buf[1] > 7)
                return 1;
 
-       i = 0;
+       i = 2;
        shift = 0;
        value = 0;
        while (*esc && i < LCD2S_CHARACTER_SIZE + 2) {