** Patch 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
-- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1716292 Title: User mode emulation returns wrong value for write(fd, NULL, 0) Status in QEMU: New Bug description: 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 To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1716292/+subscriptions