[DTrace-devel] [PATCH v5 10/10] alloca: allow passing alloca pointers to actions and subrs

Nick Alcock nick.alcock at oracle.com
Thu Apr 14 13:26:06 UTC 2022


We'll use DTRACEFLT_BADSIZE to distinguish in error messages between
out-of-bounds errors in bcopy and the like, and size-too-large errors.
(Without this, it's hard to tell if a, say, 0x12 in the fault value
is a nearly-NULL pointer or a wrong size.)

Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
---
 include/dtrace/faults_defines.h | 1 +
 libdtrace/dt_error.c            | 1 +
 libdtrace/dt_handle.c           | 1 +
 3 files changed, 3 insertions(+)

diff --git a/include/dtrace/faults_defines.h b/include/dtrace/faults_defines.h
index 20c57ad77499..3bef92d251ca 100644
--- a/include/dtrace/faults_defines.h
+++ b/include/dtrace/faults_defines.h
@@ -32,6 +32,7 @@
 #define DTRACEFLT_UPRIV			7	/* Illegal user access */
 #define DTRACEFLT_TUPOFLOW		8	/* Tuple stack overflow */
 #define DTRACEFLT_BADSTACK		9	/* Bad stack */
+#define DTRACEFLT_BADSIZE		10	/* Bad size */
 
 #define DTRACEFLT_LIBRARY		1000	/* Library-level fault */
 
diff --git a/libdtrace/dt_error.c b/libdtrace/dt_error.c
index 50229d271425..13713acb5f23 100644
--- a/libdtrace/dt_error.c
+++ b/libdtrace/dt_error.c
@@ -206,6 +206,7 @@ dtrace_faultstr(dtrace_hdl_t *dtp, int fault)
 		{ DTRACEFLT_UPRIV,	"invalid user access" },
 		{ DTRACEFLT_TUPOFLOW,	"tuple stack overflow" },
 		{ DTRACEFLT_BADSTACK,	"bad stack" },
+		{ DTRACEFLT_BADSIZE,	"invalid size" },
 		{ DTRACEFLT_LIBRARY,	"library-level fault" },
 		{ 0,			NULL }
 	};
diff --git a/libdtrace/dt_handle.c b/libdtrace/dt_handle.c
index bdc0365c47d8..e36c1619b81e 100644
--- a/libdtrace/dt_handle.c
+++ b/libdtrace/dt_handle.c
@@ -183,6 +183,7 @@ dt_handle_err(dtrace_hdl_t *dtp, dtrace_probedata_t *data)
 			goto no_addr;
 	case DTRACEFLT_BADALIGN:
 	case DTRACEFLT_BADSTACK:
+	case DTRACEFLT_BADSIZE:
 		sprintf(details, " (0x%llx)", (u_longlong_t)err.dteda_addr);
 		break;
 
-- 
2.35.1




More information about the DTrace-devel mailing list