diff options
Diffstat (limited to 'comphelper')
-rw-r--r-- | comphelper/source/misc/configuration.cxx | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/comphelper/source/misc/configuration.cxx b/comphelper/source/misc/configuration.cxx index 1ef359c7a9b6..00179ea010da 100644 --- a/comphelper/source/misc/configuration.cxx +++ b/comphelper/source/misc/configuration.cxx @@ -183,9 +183,10 @@ css::uno::Any comphelper::detail::ConfigurationWrapper::getPropertyValue(OUStrin std::scoped_lock aGuard(maMutex); if (mbDisposed) throw css::lang::DisposedException(); -#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) - return css::uno::Any(); -#else + + // should be short-circuited in ConfigurationProperty::get() + assert(!comphelper::IsFuzzing()); + // Cache the configuration access, since some of the keys are used in hot code. auto it = maPropertyCache.find(path); if( it != maPropertyCache.end()) @@ -201,7 +202,6 @@ css::uno::Any comphelper::detail::ConfigurationWrapper::getPropertyValue(OUStrin css::uno::Any property = access->getByName(childName); maPropertyCache.emplace(path, property); return property; -#endif } void comphelper::detail::ConfigurationWrapper::setPropertyValue( @@ -332,4 +332,23 @@ void SAL_CALL comphelper::ConfigurationListener::propertyChange( } } +namespace comphelper { + +static bool bIsFuzzing = false; + +#if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) +bool IsFuzzing() +{ + return bIsFuzzing; +} +#endif + +void EnableFuzzing() +{ + bIsFuzzing = true; + LanguageTag::disable_lt_tag_parse(); +} + +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |