bin/oss-fuzz-build.sh            |    3 +++
 sc/source/ui/docshell/docsh2.cxx |    2 --
 unotools/source/i18n/resmgr.cxx  |   15 ---------------
 3 files changed, 3 insertions(+), 17 deletions(-)

New commits:
commit 78a2c0752c599d5dc951b8cf6fbe741bda0eeedd
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Sun Sep 12 21:08:56 2021 +0100
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Sun Sep 12 22:27:02 2021 +0200

    ofz: better workaround for broken msan build
    
    workaround https://github.com/google/oss-fuzz/issues/6427 by
    forcing use of the libc++.a in /usr/msan/lib when compiling the
    msan version
    
    Change-Id: I4e992cd7710b5929e74034db7a49c590349149fb
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122014
    Tested-by: Caolán McNamara <caol...@redhat.com>
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/bin/oss-fuzz-build.sh b/bin/oss-fuzz-build.sh
index 906cadd500d4..2bed84d865e4 100755
--- a/bin/oss-fuzz-build.sh
+++ b/bin/oss-fuzz-build.sh
@@ -12,6 +12,9 @@ echo start at `date -u`
 #shuffle CXXFLAGS -stdlib=libc++ arg into CXX as well because we use
 #the CXX as the linker and need to pass -stdlib=libc++ to build
 export CXX="$CXX -stdlib=libc++ 
-fsanitize-blacklist=$SRC/libreoffice/bin/sanitize-excludelist.txt"
+if [[ $SANITIZER_FLAGS = *sanitize=memory* ]]; then
+    export CXX="$CXX -Wno-unused-command-line-argument -L/usr/msan/lib"
+fi
 export CC="$CC 
-fsanitize-blacklist=$SRC/libreoffice/bin/sanitize-excludelist.txt"
 #similarly force the -fsanitize etc args in as well as pthread to get
 #things to link successfully during the build
diff --git a/sc/source/ui/docshell/docsh2.cxx b/sc/source/ui/docshell/docsh2.cxx
index 46089387f86a..e02b815d2181 100644
--- a/sc/source/ui/docshell/docsh2.cxx
+++ b/sc/source/ui/docshell/docsh2.cxx
@@ -61,7 +61,6 @@ bool ScDocShell::InitNew( const uno::Reference < 
embed::XStorage >& xStor )
     m_aDocument.GetStyleSheetPool()->CreateStandardStyles();
     m_aDocument.UpdStlShtPtrsFrmNms();
 
-#if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
     if (!m_bUcalcTest)
     {
         /* Create styles that are imported through Orcus */
@@ -79,7 +78,6 @@ bool ScDocShell::InitNew( const uno::Reference < 
embed::XStorage >& xStor )
             m_aDocument.GetStyleSheetPool()->setAllParaStandard();
         }
     }
-#endif
 
     //  SetDocumentModified is not allowed anymore in Load/InitNew!
     InitItems();
diff --git a/unotools/source/i18n/resmgr.cxx b/unotools/source/i18n/resmgr.cxx
index ede78900725b..62991153f01c 100644
--- a/unotools/source/i18n/resmgr.cxx
+++ b/unotools/source/i18n/resmgr.cxx
@@ -125,11 +125,6 @@ namespace Translate
         auto aFind = aCache.find(sUnique);
         if (aFind != aCache.end())
             return aFind->second;
-#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
-        std::locale aRet;
-        aCache[sUnique] = aRet;
-        return aRet;
-#else
         boost::locale::generator gen;
         gen.characters(boost::locale::char_facet);
         gen.categories(boost::locale::message_facet | 
boost::locale::information_facet);
@@ -201,14 +196,10 @@ namespace Translate
 
         aCache[sUnique] = aRet;
         return aRet;
-#endif
     }
 
     OUString get(TranslateId sContextAndId, const std::locale &loc)
     {
-#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
-        return createFromUtf8(sContextAndId.mpId, strlen(sContextAndId.mpId));
-#else
         assert(!strchr(sContextAndId.mpId, '\004') && "should be using nget, 
not get");
 
         //if it's a key id locale, generate it here
@@ -230,15 +221,10 @@ namespace Translate
                 result = result.replaceAll(OUString::fromUtf8("\xC3\x9F"), 
"ss");
         }
         return result;
-#endif
     }
 
     OUString nget(TranslateNId aContextSingularPlural, int n, const 
std::locale &loc)
     {
-#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
-        const char* pForm = n == 0 ? aContextSingularPlural.mpSingular : 
aContextSingularPlural.mpPlural;
-        return createFromUtf8(pForm, strlen(pForm));
-#else
         //if it's a key id locale, generate it here
         if (std::use_facet<boost::locale::info>(loc).language() == "qtz")
         {
@@ -258,7 +244,6 @@ namespace Translate
                 result = result.replaceAll(OUString::fromUtf8("\xC3\x9F"), 
"ss");
         }
         return result;
-#endif
     }
 
     static ResHookProc pImplResHookProc = nullptr;

Reply via email to