From 4b5b8fc564aebd8daf7193c4e828bd0db18c8c25 Mon Sep 17 00:00:00 2001 From: Tim Ledbetter Date: Thu, 26 Oct 2023 23:47:08 +0100 Subject: [PATCH] LibGfx: Use safe version of `count_leading_zeroes()` in WOFF parsers This guards against undefined behavior when zero is given as an argument. --- Userland/Libraries/LibGfx/Font/WOFF/Font.cpp | 2 +- Userland/Libraries/LibGfx/Font/WOFF2/Font.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibGfx/Font/WOFF/Font.cpp b/Userland/Libraries/LibGfx/Font/WOFF/Font.cpp index cebd901acc..a7ac8b5efd 100644 --- a/Userland/Libraries/LibGfx/Font/WOFF/Font.cpp +++ b/Userland/Libraries/LibGfx/Font/WOFF/Font.cpp @@ -65,7 +65,7 @@ static u16 pow_2_less_than_or_equal(u16 x) { VERIFY(x > 0); VERIFY(x < 32769); - return 1 << (sizeof(u16) * 8 - count_leading_zeroes(x - 1)); + return 1 << (sizeof(u16) * 8 - count_leading_zeroes_safe(x - 1)); } ErrorOr> Font::try_load_from_file(DeprecatedString path, unsigned int index) diff --git a/Userland/Libraries/LibGfx/Font/WOFF2/Font.cpp b/Userland/Libraries/LibGfx/Font/WOFF2/Font.cpp index f3f7c2cb62..41d9d93742 100644 --- a/Userland/Libraries/LibGfx/Font/WOFF2/Font.cpp +++ b/Userland/Libraries/LibGfx/Font/WOFF2/Font.cpp @@ -113,7 +113,7 @@ static u16 pow_2_less_than_or_equal(u16 x) { VERIFY(x > 0); VERIFY(x < 32769); - return 1 << (sizeof(u16) * 8 - count_leading_zeroes(x - 1)); + return 1 << (sizeof(u16) * 8 - count_leading_zeroes_safe(x - 1)); } enum class TransformationVersion {