Kaydet (Commit) cadfee0a authored tarafından Caolán McNamara's avatar Caolán McNamara

ofz#4952 avoid liblangtag config when fuzzing enabled

Change-Id: I9f2b0cbb5108f57ec2f80ebe24f748c33ea9cf59
Reviewed-on: https://gerrit.libreoffice.org/47477Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst 86994e1c
......@@ -702,6 +702,14 @@ void LanguageTag::setConfiguredSystemLanguage( LanguageType nLang )
aLanguageTag.registerImpl();
}
static bool lt_tag_parse_disabled = false;
// static
void LanguageTag::disable_lt_tag_parse()
{
lt_tag_parse_disabled = true;
}
static bool lcl_isKnownOnTheFlyID( LanguageType nLang )
{
return nLang != LANGUAGE_DONTKNOW && nLang != LANGUAGE_SYSTEM &&
......@@ -1197,7 +1205,7 @@ bool LanguageTagImpl::canonicalize()
myLtError aError;
if (lt_tag_parse( mpImplLangtag, OUStringToOString( maBcp47, RTL_TEXTENCODING_UTF8).getStr(), &aError.p))
if (!lt_tag_parse_disabled && lt_tag_parse(mpImplLangtag, OUStringToOString(maBcp47, RTL_TEXTENCODING_UTF8).getStr(), &aError.p))
{
char* pTag = lt_tag_canonicalize( mpImplLangtag, &aError.p);
SAL_WARN_IF( !pTag, "i18nlangtag", "LanguageTagImpl::canonicalize: could not canonicalize '" << maBcp47 << "'");
......@@ -2809,7 +2817,7 @@ bool LanguageTag::isValidBcp47( const OUString& rString, OUString* o_pCanonicali
myLtError aError;
if (lt_tag_parse( aVar.mpLangtag, OUStringToOString( rString, RTL_TEXTENCODING_UTF8).getStr(), &aError.p))
if (!lt_tag_parse_disabled && lt_tag_parse(aVar.mpLangtag, OUStringToOString(rString, RTL_TEXTENCODING_UTF8).getStr(), &aError.p))
{
char* pTag = lt_tag_canonicalize( aVar.mpLangtag, &aError.p);
SAL_WARN_IF( !pTag, "i18nlangtag", "LanguageTag:isValidBcp47: could not canonicalize '" << rString << "'");
......
......@@ -528,6 +528,9 @@ public:
/** @ATTENTION: _ONLY_ to be called by the application's configuration! */
static void setConfiguredSystemLanguage( LanguageType nLang );
/** @ATTENTION: _ONLY_ to be called by fuzzing setup */
static void disable_lt_tag_parse();
typedef std::shared_ptr< LanguageTagImpl > ImplPtr;
private:
......
......@@ -28,6 +28,7 @@
#include <com/sun/star/uno/Any.hxx>
#include <com/sun/star/uno/Reference.hxx>
#include <com/sun/star/uno/Sequence.hxx>
#include <i18nlangtag/languagetag.hxx>
#include <rtl/instance.hxx>
#include <rtl/ustring.h>
#include <rtl/ustring.hxx>
......@@ -205,6 +206,7 @@ bool utl::ConfigManager::IsFuzzing()
void utl::ConfigManager::EnableFuzzing()
{
bIsFuzzing = true;
LanguageTag::disable_lt_tag_parse();
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment