[DTrace-devel] [PATCH 2/2] Fix prid fencepost errors

eugene.loh at oracle.com eugene.loh at oracle.com
Wed Oct 9 22:30:35 UTC 2024


From: Eugene Loh <eugene.loh at oracle.com>

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
---
 libdtrace/dt_consume.c | 2 +-
 libdtrace/dt_handle.c  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libdtrace/dt_consume.c b/libdtrace/dt_consume.c
index 3e8e1b465..74004c69a 100644
--- a/libdtrace/dt_consume.c
+++ b/libdtrace/dt_consume.c
@@ -2205,7 +2205,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)
 		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)
diff --git a/libdtrace/dt_handle.c b/libdtrace/dt_handle.c
index 09fae99c3..69a6dd388 100644
--- a/libdtrace/dt_handle.c
+++ b/libdtrace/dt_handle.c
@@ -148,7 +148,7 @@ dt_handle_err(dtrace_hdl_t *dtp, dtrace_probedata_t *data)
 	prid = DT_REC(uint64_t, 0);
 	stid = DT_REC(uint64_t, 1);
 
-	if (prid > dtp->dt_probe_id)
+	if (prid >= dtp->dt_probe_id)
 		return dt_set_errno(dtp, EDT_BADERROR);
 	if (dt_stid_lookup(dtp, stid, &errdd) != 0)
 		return dt_set_errno(dtp, EDT_BADERROR);
-- 
2.43.5




More information about the DTrace-devel mailing list