Philippe Mathieu-Daudé <[email protected]> writes: > Hi, > > (now merged as commit b2c2d00f48cc5f4486cfba33b505ff86d79cb137) > > On 23/12/25 16:50, [email protected] wrote: >> From: Sven Schnelle <[email protected]> >> Signed-off-by: Sven Schnelle <[email protected]> >> Reviewed-by: Helge Deller <[email protected]> >> Reviewed-by: Philippe Mathieu-Daudé <[email protected]> >> Signed-off-by: Helge Deller <[email protected]> >> --- >> target/hppa/gdbstub.c | 62 > ++++++++++++++++++++++++++++--------------- >> 1 file changed, 41 insertions(+), 21 deletions(-) >> diff --git a/target/hppa/gdbstub.c b/target/hppa/gdbstub.c >> index 0daa52f7af..777f4a48b9 100644 >> --- a/target/hppa/gdbstub.c >> +++ b/target/hppa/gdbstub.c >> @@ -21,16 +21,25 @@ >> @@ -133,24 +142,35 @@ int hppa_cpu_gdb_read_register(CPUState *cs, > GByteArray *mem_buf, int n) >> val = env->cr[30]; >> break; >> case 64 ... 127: >> - val = extract64(env->fr[(n - 64) / 2], (n & 1 ? 0 : 32), 32); >> - break; >> - default: >> - if (n < 128) { >> - val = 0; >> + if (hppa_is_pa20(env)) { >> + val = env->fr[n - 64]; > > Coverity reports: > >>>> CID 1645613: Memory - illegal accesses (OVERRUN) >>>> Overrunning array "env->fr" of 32 8-byte elements at element > index 32 (byte offset 263) using index "n - 64" (which > evaluates to 32).
Yes, there's indeed a check missing wether n is < 96. I'll submit a patch later.
