aboutsummaryrefslogtreecommitdiff
path: root/linux-user/syscall.c
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2016-06-13 11:22:05 +0100
committerRiku Voipio <riku.voipio@linaro.org>2016-06-24 11:55:44 +0300
commit55d72a7eb32858d50ba0777cfde2027d007010b2 (patch)
treeaee8282bced8d478e2315c800e1bff4c5e215bf9 /linux-user/syscall.c
parentc7288767523f6510cf557707d3eb5e78e519b90d (diff)
linux-user: Avoid possible misalignment in host_to_target_siginfo()
host_to_target_siginfo() is implemented by a combination of host_to_target_siginfo_noswap() followed by tswap_siginfo(). The first of these two functions assumes that the target_siginfo_t it is writing to is correctly aligned, but the pointer passed into host_to_target_siginfo() is directly from the guest and might be misaligned. Use a local variable to avoid this problem. (tswap_siginfo() does now correctly handle a misaligned destination.) We have to add a memset() to host_to_target_siginfo_noswap() to avoid some false positive "may be used uninitialized" warnings from gcc about subfields of the _sifields union if it chooses to inline both tswap_siginfo() and host_to_target_siginfo_noswap() into host_to_target_siginfo(). Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Laurent Vivier <laurent@vivier.eu> Signed-off-by: Peter Maydell <riku.voipio@linaro.org>
Diffstat (limited to 'linux-user/syscall.c')
0 files changed, 0 insertions, 0 deletions