[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 0/1] Fix unaligned reads in the tcg/tci.c
From: |
Anatoly Trosinenko |
Subject: |
[Qemu-devel] [PATCH 0/1] Fix unaligned reads in the tcg/tci.c |
Date: |
Sat, 27 Jan 2018 16:49:07 +0300 |
The code in tcg/tci.c reads some data from TCI bytecode through
pointer dereferencing. As far as I know unaligned reads in such a way are
undefined behavior and compiling with -fsanitize=undefined enumerated
them as such at run-time.
I have replaced such reads with invocations of ld{l,q}_he_p.
A comment in include/qemu/bswap.h:310 suggests they should be properly
translated by the compiler. I didn't added signed/unsigned casts
since bswap.h does contain separate signed/unsigned versions
for 16-bit integers but does not for 32- and 64-bit ones, so I supposed
the developers of the bswap.h already arranged everything so
integer promotions don't mess things up. I can add casts in case I'm
not right about it.
Anatoly Trosinenko (1):
tci: eliminate UB due to unaligned reads
tcg/tci.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
--
2.14.1
- [Qemu-devel] [PATCH 0/1] Fix unaligned reads in the tcg/tci.c,
Anatoly Trosinenko <=