projects
/
xen.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
3d6e92e
)
x86/hvm: Fix shifting in stdvga_mem_read()
author
Andrew Cooper
<andrew.cooper3@citrix.com>
Sat, 16 May 2020 18:50:45 +0000
(19:50 +0100)
committer
Andrew Cooper
<andrew.cooper3@citrix.com>
Mon, 18 May 2020 14:22:53 +0000
(15:22 +0100)
stdvga_mem_read() has a return type of uint8_t, which promotes to int rather
than unsigned int. Shifting by 24 may hit the sign bit.
Spotted by Coverity.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/hvm/stdvga.c
patch
|
blob
|
history
diff --git
a/xen/arch/x86/hvm/stdvga.c
b/xen/arch/x86/hvm/stdvga.c
index bd398dbb1b2993b051241697572688bdfb6fa3ba..e2675139e7f8cb78f9e5b6a098f2b20193d846af 100644
(file)
--- a/
xen/arch/x86/hvm/stdvga.c
+++ b/
xen/arch/x86/hvm/stdvga.c
@@
-322,7
+322,7
@@
static int stdvga_mem_read(const struct hvm_io_handler *handler,
data = stdvga_mem_readb(addr);
data |= stdvga_mem_readb(addr + 1) << 8;
data |= stdvga_mem_readb(addr + 2) << 16;
- data |= stdvga_mem_readb(addr + 3) << 24;
+ data |=
(uint32_t)
stdvga_mem_readb(addr + 3) << 24;
break;
case 8: