On Mon, 23 Nov 2020 at 13:41, Alex Bennée <alex.ben...@linaro.org> wrote:
>
>
> Peter Maydell <peter.mayd...@linaro.org> writes:
>
> > In the vCont packet, two of the command actions (C and S) take an
> > argument specifying the signal to be sent to the process/thread, which is
> > sent as an ASCII string of two hex digits which immediately follow the
> > 'C' or 'S' character.
> >
> > Our code for parsing this packet accidentally skipped the first of the
> > two bytes of the signal value, because it started parsing the hex string
> > at 'p + 1' when the preceding code had already moved past the 'C' or
> > 'S' with "cur_action = *p++".
> >
> > This meant that we would only do the right thing for signals below
> > 10, and would misinterpret the rest.  For instance, when the debugger
> > wants to send the process a SIGPROF (27 on x86-64) we mangle this into
> > a SIGSEGV (11).
> >
> > Remove the accidental double increment.
> >
> > Fixes: https://bugs.launchpad.net/qemu/+bug/1773743
> > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>
>
> LGTM
>
> Reviewed-by: Alex Bennée <alex.ben...@linaro.org>
>
> > ---
> > Haven't really given this enough testing to want to put it into 5.2,
> > I think (though it does fix the repro in the bug report).
> > The bug has been present since commit 544177ad1cfd78 from 2017.
>
> I'd be happy including it. I don't have any gdbstub patches queued at
> the moment but I could put together one if you want or you could just
> include it directly if you are now happy to.

Now that 6.0 has opened up, I'll put this in via target-arm.next
unless you'd prefer to take it.

-- PMM

Reply via email to