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 = """"""