[DTrace-devel] [PATCH 2/5] Check not-NULL pointer before trace(string)
eugene.loh at oracle.com
eugene.loh at oracle.com
Wed Aug 25 19:21:35 PDT 2021
From: Eugene Loh <eugene.loh at oracle.com>
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
---
libdtrace/dt_cg.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/libdtrace/dt_cg.c b/libdtrace/dt_cg.c
index 2c7bd178..a4416ffb 100644
--- a/libdtrace/dt_cg.c
+++ b/libdtrace/dt_cg.c
@@ -844,12 +844,17 @@ dt_cg_store_val(dt_pcb_t *pcb, dt_node_t *dnp, dtrace_actkind_t kind,
} else if (dt_node_is_string(dnp)) {
dt_ident_t *idp;
uint_t size_ok = dt_irlist_label(dlp);
- int reg = dt_regset_alloc(drp);
+ int reg;
+
+ dt_cg_check_notnull(dlp, drp, dnp->dn_reg);
off = dt_rec_add(pcb->pcb_hdl, dt_cg_fill_gap, kind,
size, 1, pfp, arg);
/* Retrieve the length of the string. */
+ reg = dt_regset_alloc(drp);
+ if (reg == -1)
+ longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
dt_cg_strlen(dlp, drp, reg, dnp->dn_reg);
if (dt_regset_xalloc_args(drp) == -1)
--
2.18.4
More information about the DTrace-devel
mailing list