From 2a2e31f2ed75d81ee21b35599e60d1d19e9e99f7 Mon Sep 17 00:00:00 2001 From: Dan Klishch Date: Thu, 8 Feb 2024 14:39:26 -0500 Subject: [PATCH] LibCrypto: Avoid UB in BigFraction::to_byte_string for 0/x fractions --- Userland/Libraries/LibCrypto/BigFraction/BigFraction.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Userland/Libraries/LibCrypto/BigFraction/BigFraction.cpp b/Userland/Libraries/LibCrypto/BigFraction/BigFraction.cpp index 12d48a31dc..0c42059c91 100644 --- a/Userland/Libraries/LibCrypto/BigFraction/BigFraction.cpp +++ b/Userland/Libraries/LibCrypto/BigFraction/BigFraction.cpp @@ -213,7 +213,7 @@ ByteString BigFraction::to_byte_string(unsigned rounding_threshold) const auto const remove_trailing_zeros = [](StringView value) -> StringView { auto n = value.length(); VERIFY(n > 0); - while (value.characters_without_null_termination()[n - 1] == '0') + while (n > 0 && value.characters_without_null_termination()[n - 1] == '0') --n; return { value.characters_without_null_termination(), n }; };