diff options
Diffstat (limited to 'results/classifier/108/other/602')
| -rw-r--r-- | results/classifier/108/other/602 | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/results/classifier/108/other/602 b/results/classifier/108/other/602 new file mode 100644 index 000000000..c4ad0e1d9 --- /dev/null +++ b/results/classifier/108/other/602 @@ -0,0 +1,28 @@ +device: 0.799 +graphic: 0.691 +network: 0.643 +vnc: 0.614 +PID: 0.535 +socket: 0.526 +semantic: 0.478 +files: 0.435 +debug: 0.426 +boot: 0.386 +performance: 0.366 +permissions: 0.273 +other: 0.251 +KVM: 0.185 + +Failure to translate host to target errno in IP_RECVERR, IPV6_RECVERR emulation +Description of problem: +In translated IP_RECVERR (and IPV6_RECVERR) control messages, the `ee_errno` is not translated, so host errnos are observed on guests. E.g., `ECONNREFUSED` is 111 on x86_64 host, but expected to be 146 in MIPS ABI. +Steps to reproduce: +1. https://cirrus-ci.com/task/5914289870471168 +Additional information: +The bugs are on [lines 1970 and 2014 here](https://github.com/qemu/qemu/blob/211364c21e7f757ae1acf4e72b5df39c498fb88b/linux-user/syscall.c#L1970-L2014). + +The fix is something like: + +``` +__put_user(host_to_target_errno(errh->ee.ee_errno), &target_errh->ee.ee_errno); +``` |