From 7a25c3b16c742cd3baab9d37656ab166b52bdb80 Mon Sep 17 00:00:00 2001 From: Artur Kowalski Date: Sun, 26 Apr 2026 09:13:30 +0000 Subject: [PATCH] tracepoint_decode: fix panic when decoding string fields For string fields element_size is zero which causes panic on arithmetic overflow. As rust by default enables overflow checks in debug builds and disables them in release builds, the panic occurs only debug builds, release builds seemingly working fine and properly decoding strings at least in the cases I have tested. As the panic happens in get_field_value_with_data_and_reader it's not caught by current tests. --- tracepoint_decode/src/perf_field_format.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tracepoint_decode/src/perf_field_format.rs b/tracepoint_decode/src/perf_field_format.rs index 0236c37..1b94d5f 100644 --- a/tracepoint_decode/src/perf_field_format.rs +++ b/tracepoint_decode/src/perf_field_format.rs @@ -939,7 +939,7 @@ impl PerfFieldFormat { } let element_size = self.element_size(); - let mask = element_size as usize - 1; + let mask = (element_size as usize).saturating_sub(1); if 0 != (bytes.len() & mask) { bytes = &bytes[..bytes.len() & !mask]; }