[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [Bug 1728116] Re: Empty /proc/self/auxv (linux-user)
From: |
Thomas Huth |
Subject: |
[Qemu-devel] [Bug 1728116] Re: Empty /proc/self/auxv (linux-user) |
Date: |
Fri, 15 Dec 2017 15:55:51 -0000 |
Fix has been released with QEMU 2.11:
https://git.qemu.org/?p=qemu.git;a=commitdiff;h=f516511ea84d8bb3395d6e
** Changed in: qemu
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1728116
Title:
Empty /proc/self/auxv (linux-user)
Status in QEMU:
Fix Released
Bug description:
The userspace Linux API virtualization used to fake access to
/proc/self/auxv, to provide meaningful data for the guest process.
For newer qemu versions, this fails: The openat() is intercepted, but
there's no content: /proc/self/auxv has length zero (i.e. reading from
it returns 0 bytes).
Good:
$ x86_64-linux-user/qemu-x86_64 /usr/bin/cat /proc/self/auxv | wc -c
256 /proc/self/auxv
Bad:
$ x86_64-linux-user/qemu-x86_64 /usr/bin/cat /proc/self/auxv | wc -c
0 /proc/self/auxv
This worked in 2.7.1, and fails in 2.10.1.
This causes e.g. any procps-ng-based tool to segfault while reading
from /proc/self/auxv in an endless loop (probably worth another bug
report...)
Doing a "git bisect" shows that this commit:
https://github.com/qemu/qemu/commit/7c4ee5bcc introduced the problem.
It might be a simple logic (subtraction in the wrong direction?) or
sign-ness error: Adding some logging (to v2.10.1)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 9b6364a..49285f9 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -7469,6 +7469,9 @@ static int open_self_auxv(void *cpu_env, int fd)
abi_ulong len = ts->info->auxv_len;
char *ptr;
+ gemu_log(TARGET_ABI_FMT_lu"\n", len);
+ gemu_log(TARGET_ABI_FMT_ld"\n", len);
+
/*
* Auxiliary vector is stored in target process stack.
* read in whole auxv vector and copy it to file
shows this output:
$ x86_64-linux-user/qemu-x86_64 /usr/bin/cat /proc/self/auxv | wc -c
18446744073709551264
-352
0
And 352 could be the expected length.
To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1728116/+subscriptions
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] [Bug 1728116] Re: Empty /proc/self/auxv (linux-user),
Thomas Huth <=