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 <mpatocka@redhat.com>
Acked-by: Helge Deller <deller@gmx.de>
Cc: qemu-stable@nongnu.org
Signed-off-by: Helge Deller <deller@gmx.de>
(cherry picked from commit 5b1270ef14
)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
This commit is contained in:
parent
f7f97b9ad8
commit
fda70be0c5
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user