[RFA] gdbserver/tracepoint.c, eval_agent_expr, prevent stack underflow.
Pedro Alves
pedro@codesourcery.com
Thu Mar 17 12:41:00 GMT 2011
On Wednesday 09 March 2011 01:32:12, Michael Snyder wrote:
> Pedro,
>
> Correct me if I'm wrong, but it looks to me as if this function will
> detect stack underflow only after it has happened, and an invalid stack
> element has been used. This change sets aside the zeroeth element of
> the stack as a sentinel, to prevent that.
>
> OK?
1. There are several checks on SP against 0 that you haven't
touched, that would no longer work as intended...
2. There are OPs that use 'stack[SP - 2]'.
3. gdb_agent_op_pick touches 'stack[SP - foo]', with an arbitrary foo.
So, I guess either make this use both 0 and 1 as sentinels,
or make everywhere that does --sp do `if (--sp >= 0)' instead.
(or even something else smarter.) #3 looks like should have
its own check, in either way.
This evaluator is Stan's design, dunno if he has a preference.
This goes without saying, but please make sure gdb.trace/ doesn't
regress after the patch.
--
Pedro Alves
More information about the Gdb-patches
mailing list