From: Robert Abel Date: Fri, 9 Feb 2018 23:50:10 +0000 (+0100) Subject: auxdisplay: charlcd: fix hex literal ranges for graphics command X-Git-Tag: v4.18-rc1~102^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2e8c04f75731bbd968fa77e94ed856f2dcf53ae6;p=thirdparty%2Fkernel%2Flinux.git auxdisplay: charlcd: fix hex literal ranges for graphics command The graphics command expects 16 hexadecimal literals, but would allow characters in range [0-9a-zA-Z] instead of [0-9a-fA-F]. Signed-off-by: Robert Abel Acked-by: Willy Tarreau Reviewed-by: Geert Uytterhoeven Signed-off-by: Miguel Ojeda --- diff --git a/drivers/auxdisplay/charlcd.c b/drivers/auxdisplay/charlcd.c index 0246ff77e7729..674ffbae1c656 100644 --- a/drivers/auxdisplay/charlcd.c +++ b/drivers/auxdisplay/charlcd.c @@ -443,9 +443,9 @@ static inline int handle_lcd_special_code(struct charlcd *lcd) shift ^= 4; if (*esc >= '0' && *esc <= '9') { value |= (*esc - '0') << shift; - } else if (*esc >= 'A' && *esc <= 'Z') { + } else if (*esc >= 'A' && *esc <= 'F') { value |= (*esc - 'A' + 10) << shift; - } else if (*esc >= 'a' && *esc <= 'z') { + } else if (*esc >= 'a' && *esc <= 'f') { value |= (*esc - 'a' + 10) << shift; } else { esc++;