From: Mikulas Patocka Date: Sat, 16 Sep 2023 16:32:45 +0000 (+0200) Subject: linux-user/hppa: lock both words of function descriptor X-Git-Tag: v7.2.7~54 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=19bbe3a6e979c017cddc8ce233645415b5374e4b;p=thirdparty%2Fqemu.git linux-user/hppa: lock both words of function descriptor The code in setup_rt_frame reads two words at haddr, but locks only one. This patch fixes it to lock both. Signed-off-by: Mikulas Patocka Acked-by: Helge Deller Cc: qemu-stable@nongnu.org Signed-off-by: Helge Deller (cherry picked from commit 5b1270ef1477bb7f240c3bfe2cd8b0fe4721fd51) Signed-off-by: Michael Tokarev --- diff --git a/linux-user/hppa/signal.c b/linux-user/hppa/signal.c index 3a976ac6935..bda6e54655a 100644 --- a/linux-user/hppa/signal.c +++ b/linux-user/hppa/signal.c @@ -149,12 +149,13 @@ void setup_rt_frame(int sig, struct target_sigaction *ka, target_ulong *fdesc, dest; haddr &= -4; - if (!lock_user_struct(VERIFY_READ, fdesc, haddr, 1)) { + fdesc = lock_user(VERIFY_READ, haddr, 2 * sizeof(target_ulong), 1); + if (!fdesc) { goto give_sigsegv; } __get_user(dest, fdesc); __get_user(env->gr[19], fdesc + 1); - unlock_user_struct(fdesc, haddr, 1); + unlock_user(fdesc, haddr, 0); haddr = dest; } env->iaoq_f = haddr;