[DTrace-devel] [PATCH v2 3/5] Fix size for typecast tuple (and aggregation key) components
Kris Van Hees
kris.van.hees at oracle.com
Thu Sep 8 20:30:33 UTC 2022
Components of a tuple (or aggregation key) were being typecast where
needed but if narrowing or widening took place, the storage size to store
the value was never updated.
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>
---
libdtrace/dt_cg.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/libdtrace/dt_cg.c b/libdtrace/dt_cg.c
index 06ab0974..c4e49129 100644
--- a/libdtrace/dt_cg.c
+++ b/libdtrace/dt_cg.c
@@ -2765,6 +2765,9 @@ empty_args:
dt_cg_typecast(dnp, &isp->dis_args[i], dlp, drp);
isp->dis_args[i].dn_reg = -1;
+ /* The typecast may have changed the size. */
+ size = dt_node_sizeof(&isp->dis_args[i]);
+
if (dt_node_is_scalar(dnp) || dt_node_is_float(dnp)) {
assert(size > 0 && size <= 8 &&
(size & (size - 1)) == 0);
--
2.34.1
More information about the DTrace-devel
mailing list