[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-trivial] [PATCH] linux-users/syscall: make do_ioctl_rt safer
From: |
Alex Bennée |
Subject: |
[Qemu-trivial] [PATCH] linux-users/syscall: make do_ioctl_rt safer |
Date: |
Thu, 8 Nov 2018 10:59:04 +0000 |
host_rt_dev_ptr is set while looping through a control structure. The
compiler can not know that all structures passed to do_ioctl_rt will
trigger the if clause so rightly complains with an --enable-sanitizers
build. To keep the compiler happy we default the host_rt_dev_ptr and
check it has been set before attempting to follow it.
Signed-off-by: Alex Bennée <address@hidden>
CC: address@hidden
---
linux-user/syscall.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 810a58b704..3a942f1f4a 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -4669,7 +4669,7 @@ static abi_long do_ioctl_rt(const IOCTLEntry *ie, uint8_t
*buf_temp,
int target_size;
void *argptr;
abi_ulong *target_rt_dev_ptr;
- unsigned long *host_rt_dev_ptr;
+ unsigned long *host_rt_dev_ptr = NULL;
abi_long ret;
int i;
@@ -4715,7 +4715,7 @@ static abi_long do_ioctl_rt(const IOCTLEntry *ie, uint8_t
*buf_temp,
unlock_user(argptr, arg, 0);
ret = get_errno(safe_ioctl(fd, ie->host_cmd, buf_temp));
- if (*host_rt_dev_ptr != 0) {
+ if (host_rt_dev_ptr && *host_rt_dev_ptr != 0) {
unlock_user((void *)*host_rt_dev_ptr,
*target_rt_dev_ptr, 0);
}
--
2.17.1
- [Qemu-trivial] [PATCH] linux-users/syscall: make do_ioctl_rt safer,
Alex Bennée <=