external/fontconfig/ubsan.patch | 11 +++++++++++ 1 file changed, 11 insertions(+)
New commits: commit 7e2d269bad64694c33cb3bc693c7df9917a4fac0 Author: Stephan Bergmann <sberg...@redhat.com> AuthorDate: Sun Mar 5 23:41:16 2023 +0100 Commit: Stephan Bergmann <sberg...@redhat.com> CommitDate: Mon Mar 6 13:37:32 2023 +0000 external/fontconfig: Silence UBSan nullptr-with-offset ...during CppunitTest_cppcanvas_test, > fcserialize.c:166:54: runtime error: applying zero offset to null pointer > #0 in FcSerializeResize at workdir/UnpackedTarball/fontconfig/src/fcserialize.c:166:54 > #1 in FcSerializeSet at workdir/UnpackedTarball/fontconfig/src/fcserialize.c:204:7 > #2 in FcSerializeAlloc at workdir/UnpackedTarball/fontconfig/src/fcserialize.c:228:10 > #3 in FcStrSerializeAlloc at workdir/UnpackedTarball/fontconfig/src/fcserialize.c:274:12 > #4 in FcDirCacheBuild at workdir/UnpackedTarball/fontconfig/src/fccache.c:1255:10 > #5 in FcDirCacheScan at workdir/UnpackedTarball/fontconfig/src/fcdir.c:360:13 > #6 in FcDirCacheRead at workdir/UnpackedTarball/fontconfig/src/fcdir.c:462:10 > #7 in FcConfigAddDirList at workdir/UnpackedTarball/fontconfig/src/fccfg.c:516:10 > #8 in FcConfigAppFontAddDir at workdir/UnpackedTarball/fontconfig/src/fccfg.c:2891:10 > #9 in psp::PrintFontManager::addFontconfigDir(rtl::OString const&) at vcl/unx/generic/fontmanager/fontconfig.cxx:745:20 > #10 in psp::PrintFontManager::initialize() at vcl/unx/generic/fontmanager/fontmanager.cxx:683:17 > #11 in GenericUnixSalData::InitPrintFontManager() at vcl/unx/generic/app/gendata.cxx:65:26 > #12 in GenericUnixSalData::GetPrintFontManager() at vcl/inc/unx/gendata.hxx:100:13 > #13 in psp::PrintFontManager::get() at vcl/unx/generic/fontmanager/fontmanager.cxx:105:23 > #14 in GenPspGraphics::GetDevFontListHelper(vcl::font::PhysicalFontCollection*) at vcl/unx/generic/print/genpspgraphics.cxx:248:35 > #15 in FreeTypeTextRenderImpl::GetDevFontList(vcl::font::PhysicalFontCollection*) at vcl/unx/generic/gdi/freetypetextrender.cxx:110:5 > #16 in SvpSalGraphics::GetDevFontList(vcl::font::PhysicalFontCollection*) at vcl/headless/svptext.cxx:51:23 > #17 in OutputDevice::ImplInitFontList() const at vcl/source/outdev/font.cxx:643:17 > #18 in OutputDevice::ImplNewFont() const at vcl/source/outdev/font.cxx:700:5 > #19 in OutputDevice::InitFont() const at vcl/source/outdev/font.cxx:660:10 > #20 in OutputDevice::GetTextHeight() const at vcl/source/outdev/text.cxx:899:10 > #21 in vcl::Window::GetTextHeight() const at vcl/source/window/window3.cxx:65:65 > #22 in vcl::Window::ImplInitAppFontData(vcl::Window const*) at vcl/source/window/window.cxx:1188:40 > #23 in vcl::Window::ImplInit(vcl::Window*, long, SystemParentData*) at vcl/source/window/window.cxx:1182:9 > #24 in ImplBorderWindow::ImplInit(vcl::Window*, long, BorderWindowStyle, SystemParentData*) at vcl/source/window/brdwin.cxx:1557:13 > #25 in ImplBorderWindow::ImplBorderWindow(vcl::Window*, SystemParentData*, long, BorderWindowStyle) at vcl/source/window/brdwin.cxx:1586:5 > #26 in VclPtrInstance<ImplBorderWindow>::VclPtrInstance<vcl::Window*&, SystemParentData*&, long&, BorderWindowStyle&>(vcl::Window*&, SystemParentData*&, long&, BorderWindowStyle&) at include/vcl/vclptr.hxx:280:39 > #27 in WorkWindow::ImplInit(vcl::Window*, long, SystemParentData*) at vcl/source/window/wrkwin.cxx:51:38 > #28 in WorkWindow::WorkWindow(vcl::Window*, long) at vcl/source/window/wrkwin.cxx:95:5 > #29 in ScopedVclPtrInstance<WorkWindow>::ScopedVclPtrInstance<std::nullptr_t, long const&>(std::nullptr_t&&, long const&) at include/vcl/vclptr.hxx:412:45 > #30 in CanvasTest::testComposite() at cppcanvas/qa/unit/test.cxx:38:38 Change-Id: I90c86931ae5d4dfb32a1a95a5eb660484b54f09a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148287 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sberg...@redhat.com> diff --git a/external/fontconfig/ubsan.patch b/external/fontconfig/ubsan.patch index 5951f09fe6dd..91586b093480 100644 --- a/external/fontconfig/ubsan.patch +++ b/external/fontconfig/ubsan.patch @@ -9,3 +9,14 @@ /* * Scan file files to build font patterns +--- src/fcserialize.c ++++ src/fcserialize.c +@@ -163,7 +163,7 @@ + size_t old_used = serialize->buckets_used; + size_t old_count = serialize->buckets_count; + FcSerializeBucket *old_buckets = serialize->buckets; +- FcSerializeBucket *old_buckets_end = old_buckets + old_count; ++ FcSerializeBucket *old_buckets_end = old_count == 0 ? old_buckets : old_buckets + old_count; + + FcSerializeBucket *new_buckets = malloc (new_count * sizeof (*old_buckets)); + if (!new_buckets)