summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--filter/source/graphicfilter/ieps/ieps.cxx5
-rw-r--r--vcl/Executable_epsfuzzer.mk1
-rw-r--r--vcl/workben/epsfuzzer.cxx32
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)