[DTrace-devel] [PATCH 1/4] cg: fix ++/-- dynvar storage
Eugene Loh
eugene.loh at oracle.com
Mon Mar 4 21:06:39 UTC 2024
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
On 3/4/24 13:47, Nick Alcock via DTrace-devel wrote:
> This function mocks up a fake right hand side for dt_cg_store_var(), but the
> fakery is only partial, and it fails to initialize dn_kind, which
> dt_cg_store_var() then relies upon. We usually survive, but it's still
> using random junk off the stack.
>
> Fix trivial.
>
> Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
> ---
> libdtrace/dt_cg.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/libdtrace/dt_cg.c b/libdtrace/dt_cg.c
> index 1b2dbb848a5fd..949e4110750d8 100644
> --- a/libdtrace/dt_cg.c
> +++ b/libdtrace/dt_cg.c
> @@ -4338,6 +4338,7 @@ dt_cg_incdec_op(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp, uint_t op,
> * so we fake one here.
> */
> val.dn_op = DT_TOK_INT;
> + val.dn_kind = DT_NODE_INT;
> val.dn_value = op == BPF_ADD ? adj : -adj;
>
> lbl_dflt = dt_irlist_label(dlp);
More information about the DTrace-devel
mailing list