external/freetype/ubsan.patch |   11 +++++++++++
 1 file changed, 11 insertions(+)

New commits:
commit 6838d28ce0084e6e1952bfd5b7a101cb0a5bb294
Author:     Stephan Bergmann <sberg...@redhat.com>
AuthorDate: Thu Mar 31 11:34:35 2022 +0200
Commit:     Stephan Bergmann <sberg...@redhat.com>
CommitDate: Thu Mar 31 15:05:43 2022 +0200

    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 <sberg...@redhat.com>

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++ )

Reply via email to