From 8f2425125e79240d2ff9161297438b4012de826f Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 24 May 2021 08:18:34 +0200 Subject: [PATCH] LibGfx+Base: Tweak bitmap fonts to ensure glyph data is 4-byte aligned When building userland with UBSAN enabled (#7434), we were getting spammed to death by unaligned access errors. Fix these by adding 2 bytes of padding to the FontFileHeader struct, and adjusting all our font files to match the new format. :^) --- Base/res/fonts/CsillaBold10.font | Bin 15822 -> 15824 bytes Base/res/fonts/CsillaBold12.font | Bin 18894 -> 18896 bytes Base/res/fonts/CsillaRegular10.font | Bin 52558 -> 52560 bytes Base/res/fonts/CsillaRegular12.font | Bin 18894 -> 18896 bytes Base/res/fonts/KaticaBold10.font | Bin 63054 -> 63056 bytes Base/res/fonts/KaticaBold12.font | Bin 20430 -> 20432 bytes Base/res/fonts/KaticaRegular10.font | Bin 63054 -> 63056 bytes Base/res/fonts/KaticaRegular12.font | Bin 20430 -> 20432 bytes Base/res/fonts/LizaBlack10.font | Bin 15822 -> 15824 bytes Base/res/fonts/LizaBlack24.font | Bin 37326 -> 37328 bytes Base/res/fonts/LizaBlack36.font | Bin 55758 -> 55760 bytes Base/res/fonts/LizaBold10.font | Bin 15822 -> 15824 bytes Base/res/fonts/LizaBold24.font | Bin 37326 -> 37328 bytes Base/res/fonts/LizaBold36.font | Bin 55758 -> 55760 bytes Base/res/fonts/LizaRegular10.font | Bin 15822 -> 15824 bytes Base/res/fonts/LizaRegular24.font | Bin 37326 -> 37328 bytes Base/res/fonts/LizaRegular36.font | Bin 55758 -> 55760 bytes Base/res/fonts/MarietaBold24.font | Bin 24910 -> 24912 bytes Base/res/fonts/MarietaBold36.font | Bin 37198 -> 37200 bytes Base/res/fonts/MarietaRegular24.font | Bin 24910 -> 24912 bytes Base/res/fonts/MarietaRegular36.font | Bin 37198 -> 37200 bytes Base/res/fonts/PebbletonBold14.font | Bin 21966 -> 21968 bytes Base/res/fonts/PebbletonRegular14.font | Bin 21966 -> 21968 bytes Userland/Libraries/LibGfx/BitmapFont.cpp | 3 +++ 24 files changed, 3 insertions(+) diff --git a/Base/res/fonts/CsillaBold10.font b/Base/res/fonts/CsillaBold10.font index a69c20761a8ac8b980f39aadf205b6c613de143e..f6ac94a81b1a03213e22e663399fa1c2ecaf64f1 100644 GIT binary patch delta 15 WcmX?CeW7|o8S5kism*#8S7*Lc8<*rtN|7PKfVSs diff --git a/Base/res/fonts/CsillaBold12.font b/Base/res/fonts/CsillaBold12.font index 0bd7090a7302429cceab7e851aa65056ac0de466..39d96b4aa3a4e0cfa0dca742df79cd3108c974ea 100644 GIT binary patch delta 14 VcmX>%neoD8#tn6Bn`_vDoB=Tk1;qdW delta 14 VcmcaGnep6Y#tn6Bn;X~yoB=T$1;+pY diff --git a/Base/res/fonts/CsillaRegular10.font b/Base/res/fonts/CsillaRegular10.font index 6e5815f9bcaf997ed8f4eaf6915c8f847a1ca07c..090f2f265b58e3237d37bb816ef19c89e24126b7 100644 GIT binary patch delta 16 YcmX>%i}}JV<_Tq!FYvQ%th#ar07EqhA^-pY delta 16 YcmcaGi}~Cv<_Tq!8>Cq_)?7IQ06|X&-T(jq diff --git a/Base/res/fonts/CsillaRegular12.font b/Base/res/fonts/CsillaRegular12.font index bd52e33142f169ef258c3fddc9495c160d119e5d..cd367a3f1e4e7444ae181f2621978081e910397b 100644 GIT binary patch delta 14 VcmX>%neoD8#tn6Bn`_vDoB=Tk1;qdW delta 14 VcmcaGnep6Y#tn6Bn;X~yoB=T$1;+pY diff --git a/Base/res/fonts/KaticaBold10.font b/Base/res/fonts/KaticaBold10.font index efba786f18bcc2d31a019a9cd8e2eff0438a6162..9ff2641f8b7266acad8bb9b6c5fd266fe0933356 100644 GIT binary patch delta 14 WcmX^2hWWx9<_%@6n@d=4eEXnY@6VWpe}Tg%1FOhYJ1x diff --git a/Base/res/fonts/KaticaBold12.font b/Base/res/fonts/KaticaBold12.font index 831ee25d1aa9bd7817cafa5b31cba4b5ae0b6514..b468c9d44b015c5a43bb9f3cd24f47e39115b13c 100644 GIT binary patch delta 18 acmX>%pYg(c#tm%jlMnDqZI)x--~j+g$Oh;D delta 18 acmcaGpYhy$#tm%jlRxmVZ02D<;sF3jl?MR; diff --git a/Base/res/fonts/KaticaRegular10.font b/Base/res/fonts/KaticaRegular10.font index 21e2fb5521802278de1581533e634beaf601eabe..bf4e9ac27b021eae1e4e97685ef866b7713c3e86 100644 GIT binary patch delta 14 WcmX^2hWWx9<_%@6n@d=4eE=Dvbllv!Uq6+1qx^Y diff --git a/Base/res/fonts/KaticaRegular12.font b/Base/res/fonts/KaticaRegular12.font index 2f23e5f05969d40da8e6ca2a8a4f59c50607c773..92543ea33c6e4e2a1a96d0888f69714f73cebc22 100644 GIT binary patch delta 18 acmX>%pYg(c#tm%jlMnDqZI)x--~j+g$Oh;D delta 14 WcmcaGpYhy$#tm%jn>pA|cmMz{1_f>a diff --git a/Base/res/fonts/LizaBlack10.font b/Base/res/fonts/LizaBlack10.font index 1cd3047606a398f47355f65f9460056f5c238916..07ce71144dc71e934005860925156c62efad800f 100644 GIT binary patch delta 12 TcmX?CeW7|o8SCZ})+h@ADv||$ delta 12 TcmcameXe>#8SCZ>)(8s#Dxw8| diff --git a/Base/res/fonts/LizaBlack24.font b/Base/res/fonts/LizaBlack24.font index 763cdbce3d43d8d9d9eadcc6e26fb4cc9ff15326..400da329bfee8c6dfdaeb71437796db6d9dba35e 100644 GIT binary patch delta 22 ecmX@NnCZe|rVZP8Cg0IBnrtU#uvv_EM+*RTCkayk delta 22 ecmcbxnCaYNrVZP8CO^If46 diff --git a/Base/res/fonts/LizaBold10.font b/Base/res/fonts/LizaBold10.font index 7ee0a363a1242a54465d7ed9f34af2f95942cb01..292a30bc6129bd1dc1014246d6e14e3ea0f2cdee 100644 GIT binary patch delta 16 XcmX?CeW7|o8S7*LcCO8JtN|7PKfVSs delta 28 kcmcameXe>#8S7*lb)Lxr90HTy2yjep;AGjnfYrbP0Hl%$^Z)<= diff --git a/Base/res/fonts/LizaBold24.font b/Base/res/fonts/LizaBold24.font index 05f3a3f4384d929e4921a8724bb07b6e93b9f702..828fc1fff75909dcf2a464008090f576dedb7595 100644 GIT binary patch delta 22 ecmX@NnCZe|rVZP8Cg0IBnrtU#uvv_EM+*RTCkayk delta 22 ecmcbxnCaYNrVZP8CO^If46 diff --git a/Base/res/fonts/LizaRegular10.font b/Base/res/fonts/LizaRegular10.font index 8f355d050a78050ddbbb939cccf699522c645e35..07d9817fd0f30dc1673e683fd84de751aab37555 100644 GIT binary patch delta 12 TcmX?CeW7|o8SCZ})+h@ADv||$ delta 16 XcmcameXe>#8SCUZ>>QgLSOY8oL>>md diff --git a/Base/res/fonts/LizaRegular24.font b/Base/res/fonts/LizaRegular24.font index cd1402432dd57dcdb77da95ba8f9b6dcea7baee3..34166ef6c1df4346daf55ddcf7a360da9aa99c2b 100644 GIT binary patch delta 22 ecmX@NnCZe|rVZP9Cg0UFnrttozgdiTM+*RTL5dr`>lm_|$ diff --git a/Base/res/fonts/MarietaRegular36.font b/Base/res/fonts/MarietaRegular36.font index 850fce272c37e5949dc414d976e0832c521664f1..6038115b9debe2d8b40ee3cbe558393c527795a7 100644 GIT binary patch delta 14 WcmX@Ni0Q&2rVX!zHop)`s{;Tx>jxwN delta 14 Wcmcbxi0RxSrVX!zHop-{sRIBv{Rbuh diff --git a/Base/res/fonts/PebbletonBold14.font b/Base/res/fonts/PebbletonBold14.font index 4bdfb0eee99aaba8c667a6b45442ec8b57a1cbae..6ccce1d950ef987953829b9bd3bb9660acf2fe98 100644 GIT binary patch delta 18 acmX@Nn(@MF#tm)klivuaZC=H$;s*dyi3h&` delta 22 ecmcbxn(^Ff#tm)klRpTkOkN<(vUvl$f*$~NUkMce diff --git a/Base/res/fonts/PebbletonRegular14.font b/Base/res/fonts/PebbletonRegular14.font index 3ec833539056f333e08c565b3eda3c9b6ac0f468..6a15c0b090258a2f67dee06621466c8415d4aa6e 100644 GIT binary patch delta 18 acmX@Nn(@MF#tm)klivuaZC=H$;s*dyi3h&` delta 22 ecmcbxn(^Ff#tm)klRpTkOkN<(vUvl$f*$~NUkMce diff --git a/Userland/Libraries/LibGfx/BitmapFont.cpp b/Userland/Libraries/LibGfx/BitmapFont.cpp index a50ba1b454..a8b844f359 100644 --- a/Userland/Libraries/LibGfx/BitmapFont.cpp +++ b/Userland/Libraries/LibGfx/BitmapFont.cpp @@ -35,8 +35,11 @@ struct [[gnu::packed]] FontFileHeader { u16 weight; char name[32]; char family[32]; + u16 unused; }; +static_assert(sizeof(FontFileHeader) == 80); + NonnullRefPtr BitmapFont::clone() const { size_t bytes_per_glyph = sizeof(u32) * glyph_height();