From 618acd37d702a481fbf67e8d67ea4059aff0b127 Mon Sep 17 00:00:00 2001 From: Alejandro Vaz Date: Sat, 19 Sep 2026 13:28:10 +0200 Subject: [PATCH 1/2] fix: length overflow on non-64-bit ZST --- src/taggedlen.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/taggedlen.rs b/src/taggedlen.rs index 7e76ca81..e8d56e2c 100644 --- a/src/taggedlen.rs +++ b/src/taggedlen.rs @@ -66,8 +66,9 @@ impl TaggedLen { panic!("smallvec length overflow") } #[cfg(any(debug_assertions, not(target_pointer_width = "64")))] - if self.len().saturating_add(n) > Self::MAX_LEN { - assert_failed(); + match self.len().checked_add(n) { + Some(value) => if value > Self::MAX_LEN {assert_failed()}, + None => assert_failed() } self.0 += n << Self::SHIFT; } From a68504dbbea1234e249035ec9b5761f8f7736c11 Mon Sep 17 00:00:00 2001 From: Alejandro Vaz Date: Sat, 19 Sep 2026 13:29:27 +0200 Subject: [PATCH 2/2] fix: style formatting --- src/taggedlen.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/taggedlen.rs b/src/taggedlen.rs index e8d56e2c..c3571657 100644 --- a/src/taggedlen.rs +++ b/src/taggedlen.rs @@ -67,7 +67,11 @@ impl TaggedLen { } #[cfg(any(debug_assertions, not(target_pointer_width = "64")))] match self.len().checked_add(n) { - Some(value) => if value > Self::MAX_LEN {assert_failed()}, + Some(value) => { + if value > Self::MAX_LEN { + assert_failed() + } + } None => assert_failed() } self.0 += n << Self::SHIFT;