summary refs log tree commit diff stats
path: root/gitlab/issues/target_missing/host_missing/accel_missing/579.toml
blob: d531cdc6627437d641f3b5b90c39271442f1e653 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
id = 579
title = "chown() fails when it should succeed in QEMU user mode on Linux/sparc64"
state = "opened"
created_at = "2021-08-29T15:13:31.203Z"
closed_at = "n/a"
labels = ["linux-user"]
url = "https://gitlab.com/qemu-project/qemu/-/issues/579"
host-os = "Ubuntu 20.04"
host-arch = "x86_64"
qemu-version = "6.1.0"
guest-os = "Linux"
guest-arch = "sparc64"
description = """The `chown()` function fails, instead of succeeding, in a particular situation."""
reproduce = """[foo.c](/uploads/630d9b83671a071f4ded4da43b6c1b9b/foo.c)

1.
```
# apt install g++-10-sparc64-linux-gnu
# mkdir -p /usr/sparc64-linux-gnu/etc
# touch /usr/sparc64-linux-gnu/etc/ld.so.cache
```
2.
```
$ sparc64-linux-gnu-gcc-10 -Wall -static foo.c
```
[a.out](/uploads/bbab43a1b78e6d16ee13e0eff5e963a5/a.out)

3. Transfer the a.out file to a Linux/sparc64 machine; execute these commands there:
```
$ id
```
Verify that you are in 2 or more groups.
```
$ touch file
$ ln -s file link
$ ln -s link link2
$ ./a.out; echo $?
```
It prints `0`.

4.
```
$ id
```
Verify that you are in 2 or more groups.
```
$ touch file
$ ln -s file link
$ ln -s link link2
$ QEMU_LD_PREFIX=/usr/sparc64-linux-gnu ~/inst-qemu/6.1.0/bin/qemu-sparc64 ./a.out; echo $?
```
Expected: `0`
Actual:
```
chown: Operation not permitted
1
```"""
additional = """"""