summaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2022-03-31 11:34:35 +0200
committerStephan Bergmann <sbergman@redhat.com>2022-03-31 15:05:43 +0200
commit6838d28ce0084e6e1952bfd5b7a101cb0a5bb294 (patch)
tree5073f430d2b93cd75668b7af86733e165c076acf /external
parentcbdd82ef1d705af77a57f9a22a3274ee68a4929a (diff)
external/freetype: Avoid nullptr-with-offset
> workdir/UnpackedTarball/freetype/src/truetype/ttgxvar.c:967:17: runtime error: applying zero offset to null pointer > #0 in ft_var_get_item_delta at workdir/UnpackedTarball/freetype/src/truetype/ttgxvar.c:967:17 > #1 in tt_hvadvance_adjust at workdir/UnpackedTarball/freetype/src/truetype/ttgxvar.c:1138:13 > #2 in tt_hadvance_adjust at workdir/UnpackedTarball/freetype/src/truetype/ttgxvar.c:1162:12 > #3 in tt_face_get_metrics at workdir/UnpackedTarball/freetype/src/sfnt/ttmtx.c:326:11 > #4 in TT_Get_HMetrics at workdir/UnpackedTarball/freetype/src/truetype/ttgload.c:104:5 > #5 in tt_get_advances at workdir/UnpackedTarball/freetype/src/truetype/ttdriver.c:269:9 > #6 in FT_Get_Advance at workdir/UnpackedTarball/freetype/src/base/ftadvanc.c:97:15 > #7 in af_shaper_get_elem at workdir/UnpackedTarball/freetype/src/autofit/afshaper.c:673:7 > #8 in af_latin_metrics_check_digits at workdir/UnpackedTarball/freetype/src/autofit/aflatin.c:1105:21 > #9 in af_latin_metrics_init at workdir/UnpackedTarball/freetype/src/autofit/aflatin.c:1156:7 > #10 in af_face_globals_get_metrics at workdir/UnpackedTarball/freetype/src/autofit/afglobal.c:462:17 > #11 in af_loader_load_glyph at workdir/UnpackedTarball/freetype/src/autofit/afloader.c:306:13 > #12 in af_autofitter_load_glyph at workdir/UnpackedTarball/freetype/src/autofit/afmodule.c:489:13 > #13 in FT_Load_Glyph at workdir/UnpackedTarball/freetype/src/base/ftobjs.c:978:19 > #14 in FreetypeFont::GetGlyphOutline(unsigned short, basegfx::B2DPolyPolygon&, bool) const at vcl/unx/generic/glyphs/freetype_glyphcache.cxx:903:19 [...] during CppunitTest_svx_unit Change-Id: I6d45ec44006458350629edf06b8ec092a450ea05 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132357 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'external')
-rw-r--r--external/freetype/ubsan.patch11
1 files changed, 11 insertions, 0 deletions
diff --git a/external/freetype/ubsan.patch b/external/freetype/ubsan.patch
index 27a36eb880bd..236ef023bf1b 100644
--- a/external/freetype/ubsan.patch
+++ b/external/freetype/ubsan.patch
@@ -112,3 +112,14 @@
FT_PtrDist n_edges;
AF_Edge edge;
AF_Edge anchor = NULL;
+--- src/truetype/ttgxvar.c
++++ src/truetype/ttgxvar.c
+@@ -964,7 +964,7 @@
+ /* in the OpenType specification. */
+
+ varData = &itemStore->varData[outerIndex];
+- deltaSet = &varData->deltaSet[varData->regionIdxCount * innerIndex];
++ deltaSet = varData->regionIdxCount * innerIndex == 0 ? varData->deltaSet : &varData->deltaSet[varData->regionIdxCount * innerIndex];
+
+ /* outer loop steps through master designs to be blended */
+ for ( master = 0; master < varData->regionIdxCount; master++ )