[DTrace-devel] [PATCH 2/2] consume: avoid a bad prid causing a core dump

Kris Van Hees kris.van.hees at oracle.com
Fri Mar 21 14:43:59 UTC 2025


We were not guarding against prid being DTACE_IDNONE (0), which would
cause a core dump if it was encountered in a trace record.

Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
---
 libdtrace/dt_consume.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libdtrace/dt_consume.c b/libdtrace/dt_consume.c
index 58a2ead9..ed52b88b 100644
--- a/libdtrace/dt_consume.c
+++ b/libdtrace/dt_consume.c
@@ -2191,7 +2191,7 @@ dt_consume_one_probe(dtrace_hdl_t *dtp, FILE *fp, char *data, uint32_t size,
 	pdat->dtpda_stid = stid;
 	pdat->dtpda_data = data;
 
-	if (prid >= dtp->dt_probe_id)
+	if (prid >= dtp->dt_probe_id || prid == DTRACE_IDNONE)
 		return dt_set_errno(dtp, EDT_BADID);
 	pdat->dtpda_pdesc = (dtrace_probedesc_t *)dtp->dt_probes[prid]->desc;
 	if (dt_stid_lookup(dtp, stid, &pdat->dtpda_ddesc) != 0)
-- 
2.45.2




More information about the DTrace-devel mailing list