target_cmd in struct IOCTLEntry is a signed int. Make sure the ioctl cmd
argument in the syscall is converted to int when matching, so that it
works correctly with an ioctl cmd that has bit 31 set.
Signed-off-by: Andreas Schwab <schwab@suse.de>
---
linux-user/strace.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/linux-user/strace.c b/linux-user/strace.c
index ca67cfd09d..8e026e5d8e 100644
--- a/linux-user/strace.c
+++ b/linux-user/strace.c
@@ -1017,12 +1017,12 @@ print_syscall_ret_ioctl(CPUArchState *cpu_env, const struct syscallname *name,
int target_size;
for (ie = ioctl_entries; ie->target_cmd != 0; ie++) {
- if (ie->target_cmd == arg1) {
+ if (ie->target_cmd == (int)arg1) {
break;
}
}
- if (ie->target_cmd == arg1 &&
+ if (ie->target_cmd == (int)arg1 &&
(ie->access == IOC_R || ie->access == IOC_RW)) {
arg_type = ie->arg_type;
qemu_log(" (");
@@ -4338,7 +4338,7 @@ print_ioctl(CPUArchState *cpu_env, const struct syscallname *name,
int target_size;
for (ie = ioctl_entries; ie->target_cmd != 0; ie++) {
- if (ie->target_cmd == arg1) {
+ if (ie->target_cmd == (int)arg1) {
break;
}
}
--
2.53.0
--
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."