vt/consolemap: do font sum unsigned
authorJiri Slaby <jslaby@suse.cz>
Tue, 5 Jan 2021 12:02:34 +0000 (13:02 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 7 Mar 2021 10:27:44 +0000 (11:27 +0100)
[ Upstream commit 9777f8e60e718f7b022a94f2524f967d8def1931 ]

The constant 20 makes the font sum computation signed which can lead to
sign extensions and signed wraps. It's not much of a problem as we build
with -fno-strict-overflow. But if we ever decide not to, be ready, so
switch the constant to unsigned.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Link: https://lore.kernel.org/r/20210105120239.28031-7-jslaby@suse.cz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/tty/vt/consolemap.c

index a5f88cf0f61d56de1db09df0bd3e8a3eeec19789..a2c1a02f04078b7a994a1634427aea622e4a0500 100644 (file)
@@ -493,7 +493,7 @@ con_insert_unipair(struct uni_pagedir *p, u_short unicode, u_short fontpos)
 
        p2[unicode & 0x3f] = fontpos;
        
-       p->sum += (fontpos << 20) + unicode;
+       p->sum += (fontpos << 20U) + unicode;
 
        return 0;
 }