blob: 000f5716d3eb5ba1f02e35c90ebb5e4023a6d06c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
id = 602
title = "Failure to translate host to target errno in IP_RECVERR, IPV6_RECVERR emulation"
state = "opened"
created_at = "2021-09-06T20:56:08.562Z"
closed_at = "n/a"
labels = ["linux-user", "target: mips"]
url = "https://gitlab.com/qemu-project/qemu/-/issues/602"
host-os = "n/a"
host-arch = "n/a"
qemu-version = "n/a"
guest-os = "n/a"
guest-arch = "n/a"
description = """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."""
reproduce = """1. https://cirrus-ci.com/task/5914289870471168"""
additional = """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);
```"""
|