On Sat, 16 Sep 2023, Helge Deller wrote: > On 9/16/23 15:52, Mikulas Patocka wrote: > > 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@xxxxxxxxxx> > > > > --- > > linux-user/hppa/signal.c | 5 ++--- > > 1 file changed, 2 insertions(+), 3 deletions(-) > > > > Index: qemu/linux-user/hppa/signal.c > > =================================================================== > > --- qemu.orig/linux-user/hppa/signal.c > > +++ qemu/linux-user/hppa/signal.c > > @@ -149,12 +149,11 @@ void setup_rt_frame(int sig, struct targ > > target_ulong *fdesc, dest; > > > > haddr &= -4; > > - if (!lock_user_struct(VERIFY_READ, fdesc, haddr, 1)) { > > + if (!(fdesc = lock_user(VERIFY_READ, haddr, 2 * > > sizeof(target_ulong), 1))) > > goto give_sigsegv; > > - } > > Patch is Ok, but I think the qemu coding style is to keep the { } braces, even > if they are unnecessary (as in this case). > > Acked-by: Helge Deller <deller@xxxxxx> OK, here I resend it: From: Mikulas Patocka <mpatocka@xxxxxxxxxx> 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@xxxxxxxxxx> Acked-by: Helge Deller <deller@xxxxxx> --- linux-user/hppa/signal.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) Index: qemu/linux-user/hppa/signal.c =================================================================== --- qemu.orig/linux-user/hppa/signal.c +++ qemu/linux-user/hppa/signal.c @@ -149,12 +149,12 @@ void setup_rt_frame(int sig, struct targ target_ulong *fdesc, dest; haddr &= -4; - if (!lock_user_struct(VERIFY_READ, fdesc, haddr, 1)) { + if (!(fdesc = lock_user(VERIFY_READ, haddr, 2 * sizeof(target_ulong), 1))) { 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;