Activity log for bug #1716292

Date Who What changed Old value New value Message
2017-09-10 23:29:24 Zhuowei Zhang bug added bug
2017-09-10 23:29:56 Zhuowei Zhang description QEMU version: latest master (fcea73709b966a7ded9efa7b106ea50c7fe9025c) OS version: Ubuntu 14.04.3 Configured with: ../configure --target-list=x86_64-linux-user QEMU Linux usermode emulation does not handle write() syscalls with zero length and a null pointer correctly: on Linux this returns 0, but in emulation this returns -1. I ran into this while using an aarch64 abuild-tar from Alpine Linux in user-mode emulation; here's the minimized reproduction test case: zhuowei@zhuowei-tablet:/tmp$ cat writezerobytes.c #include <stdio.h> #include <unistd.h> #include <fcntl.h> int main() { ssize_t ret = write(STDOUT_FILENO, NULL, 0); fprintf(stderr, "write returned %ld\n", ret); return 0; } zhuowei@zhuowei-tablet:/tmp$ gcc -o writezerobytes writezerobytes.c zhuowei@zhuowei-tablet:/tmp$ uname -a Linux zhuowei-tablet 3.13.0-129-generic #178-Ubuntu SMP Fri Aug 11 12:48:20 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux zhuowei@zhuowei-tablet:/tmp$ ./writezerobytes write returned 0 zhuowei@zhuowei-tablet:/tmp$ /media/zhuowei/redhd/docs/repos/qemu/build4/x86_64-linux-user/qemu-x86_64 ./writezerobytes write returned -1 zhuowei@zhuowei-tablet:/tmp$ /media/zhuowei/redhd/docs/repos/qemu/build4/x86_64-linux-user/qemu-x86_64 --version qemu-x86_64 version 2.10.50 (v2.10.0-471-gfcea737-dirty) Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers QEMU version: latest master (fcea73709b966a7ded9efa7b106ea50c7fe9025c) OS version: Ubuntu 14.04.5 Configured with: ../configure --target-list=x86_64-linux-user QEMU Linux usermode emulation does not handle write() syscalls with zero length and a null pointer correctly: on Linux this returns 0, but in emulation this returns -1. I ran into this while using an aarch64 abuild-tar from Alpine Linux in user-mode emulation; here's the minimized reproduction test case: zhuowei@zhuowei-tablet:/tmp$ cat writezerobytes.c #include <stdio.h> #include <unistd.h> #include <fcntl.h> int main() {  ssize_t ret = write(STDOUT_FILENO, NULL, 0);  fprintf(stderr, "write returned %ld\n", ret);  return 0; } zhuowei@zhuowei-tablet:/tmp$ gcc -o writezerobytes writezerobytes.c zhuowei@zhuowei-tablet:/tmp$ uname -a Linux zhuowei-tablet 3.13.0-129-generic #178-Ubuntu SMP Fri Aug 11 12:48:20 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux zhuowei@zhuowei-tablet:/tmp$ ./writezerobytes write returned 0 zhuowei@zhuowei-tablet:/tmp$ /media/zhuowei/redhd/docs/repos/qemu/build4/x86_64-linux-user/qemu-x86_64 ./writezerobytes write returned -1 zhuowei@zhuowei-tablet:/tmp$ /media/zhuowei/redhd/docs/repos/qemu/build4/x86_64-linux-user/qemu-x86_64 --version qemu-x86_64 version 2.10.50 (v2.10.0-471-gfcea737-dirty) Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers
2018-09-07 11:51:50 Tony Garnock-Jones attachment added 0001-Bring-linux-user-write-2-handling-into-line-with-lin.patch https://bugs.launchpad.net/qemu/+bug/1716292/+attachment/5186008/+files/0001-Bring-linux-user-write-2-handling-into-line-with-lin.patch
2018-09-07 13:19:31 Mateusz Mikuła bug added subscriber Mateusz Mikuła
2018-10-04 12:37:29 Thomas Huth qemu: status New Fix Committed
2018-12-12 09:21:23 Thomas Huth qemu: status Fix Committed Fix Released