diff options
author | Caolán McNamara <caolanm@redhat.com> | 2017-10-15 20:53:06 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2017-10-16 00:25:03 +0200 |
commit | 9bb9be2ab19a959e5fd602a9a532317d3c086723 (patch) | |
tree | c64bde1edd9c802f9d555335fa0687471b887753 | |
parent | d4daf634cd9ce8d422d49669c324a2220eba54a9 (diff) |
reduce eps fuzzer size
and ofz+ubsan warning
Change-Id: I55db222dc73432171d9d0b8b8e41371963ccb955
Reviewed-on: https://gerrit.libreoffice.org/43412
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | filter/source/graphicfilter/ieps/ieps.cxx | 5 | ||||
-rw-r--r-- | vcl/Executable_epsfuzzer.mk | 1 | ||||
-rw-r--r-- | vcl/workben/epsfuzzer.cxx | 32 |
3 files changed, 36 insertions, 2 deletions
diff --git a/filter/source/graphicfilter/ieps/ieps.cxx b/filter/source/graphicfilter/ieps/ieps.cxx index b74f0805bab2..f2b138f550cd 100644 --- a/filter/source/graphicfilter/ieps/ieps.cxx +++ b/filter/source/graphicfilter/ieps/ieps.cxx @@ -36,6 +36,7 @@ #include <osl/file.hxx> #include <osl/thread.h> #include <o3tl/char16_t2wchar_t.hxx> +#include <o3tl/safeint.hxx> #include <memory> class FilterConfigItem; @@ -96,7 +97,9 @@ static long ImplGetNumber(sal_uInt8* &rBuf, sal_uInt32& nSecurityCount) nSecurityCount = 1; // error parsing the bounding box values else if ( bValid ) { - nRetValue *= 10; + const bool bFail = o3tl::checked_multiply(nRetValue, 10L, nRetValue); + if (bFail) + return 0; nRetValue += *rBuf - '0'; } break; diff --git a/vcl/Executable_epsfuzzer.mk b/vcl/Executable_epsfuzzer.mk index cc5c3a483bbc..2851b43ad6af 100644 --- a/vcl/Executable_epsfuzzer.mk +++ b/vcl/Executable_epsfuzzer.mk @@ -33,7 +33,6 @@ $(eval $(call gb_Executable_use_libraries,epsfuzzer,\ $(eval $(call gb_Executable_use_static_libraries,epsfuzzer,\ findsofficepath \ ulingu \ - fuzzer_core \ fuzzerstubs \ )) diff --git a/vcl/workben/epsfuzzer.cxx b/vcl/workben/epsfuzzer.cxx index 1cc1c9fe8f5e..3105bf76dcc5 100644 --- a/vcl/workben/epsfuzzer.cxx +++ b/vcl/workben/epsfuzzer.cxx @@ -11,6 +11,38 @@ #include <vcl/FilterConfigItem.hxx> #include "commonfuzzer.hxx" +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +extern "C" { +void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * ); +} + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation }, + { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation }, + { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation }, + { 0, 0 } + }; + + return map; +} + extern "C" bool ipsGraphicImport(SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem); extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) |