aboutsummaryrefslogtreecommitdiff
path: root/linux-user
diff options
context:
space:
mode:
authorThomas Weißschuh <thomas@t-8ch.de>2023-04-22 12:03:14 +0200
committerLaurent Vivier <laurent@vivier.eu>2023-05-17 07:20:29 +0200
commitf443a26cc6c077f792a5114c5229020ecf44ba3b (patch)
tree25b29abbc2f4858e0a3efa44e20c6c9ab095acf8 /linux-user
parent64d06015f6f44e3338af0ab2968ef7467dd2f3ef (diff)
downloadqemu-f443a26cc6c077f792a5114c5229020ecf44ba3b.zip
qemu-f443a26cc6c077f792a5114c5229020ecf44ba3b.tar.gz
qemu-f443a26cc6c077f792a5114c5229020ecf44ba3b.tar.bz2
linux-user: Don't require PROT_READ for mincore
The kernel does not require PROT_READ for addresses passed to mincore. For example the fincore(1) tool from util-linux uses PROT_NONE and currently does not work under qemu-user. Example (with fincore(1) from util-linux 2.38): $ fincore /proc/self/exe RES PAGES SIZE FILE 24K 6 22.1K /proc/self/exe $ qemu-x86_64 /usr/bin/fincore /proc/self/exe fincore: failed to do mincore: /proc/self/exe: Cannot allocate memory With this patch: $ ./build/qemu-x86_64 /usr/bin/fincore /proc/self/exe RES PAGES SIZE FILE 24K 6 22.1K /proc/self/exe Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de> Reviewed-by: Laurent Vivier <laurent@vivier.eu> Message-Id: <20230422100314.1650-3-thomas@t-8ch.de> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Diffstat (limited to 'linux-user')
-rw-r--r--linux-user/syscall.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 00a7797..6655982 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -11993,7 +11993,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
#ifdef TARGET_NR_mincore
case TARGET_NR_mincore:
{
- void *a = lock_user(VERIFY_READ, arg1, arg2, 0);
+ void *a = lock_user(VERIFY_NONE, arg1, arg2, 0);
if (!a) {
return -TARGET_ENOMEM;
}