[DTrace-devel] [PATCH] cg, agg: fix alignment of key components

Kris Van Hees kris.van.hees at oracle.com
Wed Oct 1 14:43:12 UTC 2025


Reported-by: Ruud van der Pas <ruud.vanderpas at oracle.com>
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
---
 libdtrace/dt_cg.c                      |  2 +-
 test/unittest/aggs/tst.chararray-key.d | 25 +++++++++++++++++++++++++
 test/unittest/aggs/tst.chararray-key.r |  2 ++
 3 files changed, 28 insertions(+), 1 deletion(-)
 create mode 100644 test/unittest/aggs/tst.chararray-key.d
 create mode 100644 test/unittest/aggs/tst.chararray-key.r

diff --git a/libdtrace/dt_cg.c b/libdtrace/dt_cg.c
index 1f120e1d..33435226 100644
--- a/libdtrace/dt_cg.c
+++ b/libdtrace/dt_cg.c
@@ -8734,7 +8734,7 @@ dt_cg_agg(dt_pcb_t *pcb, dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
 
 				dt_node_diftype(dtp, knp, &t);
 				size = t.dtdt_size;
-				alignment = size;
+				alignment = t.dtdt_align;
 			}
 
 			dt_aggid_rec_add(dtp, aid->di_id, kind, size, alignment, arg);
diff --git a/test/unittest/aggs/tst.chararray-key.d b/test/unittest/aggs/tst.chararray-key.d
new file mode 100644
index 00000000..af45d4a5
--- /dev/null
+++ b/test/unittest/aggs/tst.chararray-key.d
@@ -0,0 +1,25 @@
+/*
+ * Oracle Linux DTrace.
+ * Copyright (c) 2025, Oracle and/or its affiliates. All rights reserved.
+ * Licensed under the Universal Permissive License v 1.0 as shown at
+ * http://oss.oracle.com/licenses/upl.
+ */
+
+/*
+ * ASSERTION: Char arrays can be used a key components.
+ *
+ * SECTION: Aggregations/Aggregations
+ */
+
+#pragma D option quiet
+
+BEGIN
+{
+	@[curpsinfo->pr_fname] = count();
+	exit(0);
+}
+
+ERROR
+{
+	exit(1);
+}
diff --git a/test/unittest/aggs/tst.chararray-key.r b/test/unittest/aggs/tst.chararray-key.r
new file mode 100644
index 00000000..a2dcbc2d
--- /dev/null
+++ b/test/unittest/aggs/tst.chararray-key.r
@@ -0,0 +1,2 @@
+
+  dtrace                                                            1
-- 
2.51.0




More information about the DTrace-devel mailing list