[DTrace-devel] [PATCH 1/4] cg: fix ++/-- dynvar storage
Nick Alcock
nick.alcock at oracle.com
Mon Mar 4 18:47:44 UTC 2024
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);
--
2.43.0.272.gce700b77fd
More information about the DTrace-devel
mailing list