[Libreoffice-commits] core.git: 7 commits - filter/CppunitTest_filter_pcd_test.mk filter/Module_filter.mk filter/qa libreofficekit/qa smoketest/libtest.cxx soltools/cpp svl/source svtools/source sw/source vcl/source
Caolán McNamara
caolanm at redhat.com
Thu Nov 6 06:48:28 PST 2014
filter/CppunitTest_filter_pcd_test.mk | 42 +++++++++++
filter/Module_filter.mk | 1
filter/qa/cppunit/data/dxf/indeterminate/.gitignore | 2
filter/qa/cppunit/data/eps/indeterminate/.gitignore | 2
filter/qa/cppunit/data/met/indeterminate/.gitignore | 2
filter/qa/cppunit/data/pcd/indeterminate/.gitignore | 1
filter/qa/cppunit/data/pcd/pass/blank-square.pcd |binary
filter/qa/cppunit/data/pcx/indeterminate/.gitignore | 2
filter/qa/cppunit/data/pict/indeterminate/.gitignore | 2
filter/qa/cppunit/data/ppm/indeterminate/.gitignore | 2
filter/qa/cppunit/data/psd/indeterminate/.gitignore | 2
filter/qa/cppunit/data/psd/pass/blank-square.psd |binary
filter/qa/cppunit/data/ras/indeterminate/.gitignore | 2
filter/qa/cppunit/data/tga/indeterminate/.gitignore | 2
filter/qa/cppunit/data/tiff/indeterminate/.gitignore | 3
filter/qa/cppunit/filters-pcd-test.cxx | 71 +++++++++++++++++++
libreofficekit/qa/tilebench/tilebench.cxx | 1
smoketest/libtest.cxx | 1
soltools/cpp/_cpp.c | 1
svl/source/filerec/filerec.cxx | 7 +
svtools/source/misc/imap.cxx | 12 ++-
sw/source/filter/xml/xmltbli.cxx | 3
vcl/source/fontsubset/sft.cxx | 14 +++
23 files changed, 163 insertions(+), 12 deletions(-)
New commits:
commit a5ad25c44765c5e98e639bb45464d2166ea8e24d
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Nov 6 14:23:37 2014 +0000
update suffixes in .gitignore for filters
Change-Id: Ibf6093946ef1dec1a2ba202917da9e4562c10d3e
diff --git a/filter/qa/cppunit/data/dxf/indeterminate/.gitignore b/filter/qa/cppunit/data/dxf/indeterminate/.gitignore
index 583b009c..98457bc 100644
--- a/filter/qa/cppunit/data/dxf/indeterminate/.gitignore
+++ b/filter/qa/cppunit/data/dxf/indeterminate/.gitignore
@@ -1 +1 @@
-*.wmf-*
+*.dxf-*
diff --git a/filter/qa/cppunit/data/eps/indeterminate/.gitignore b/filter/qa/cppunit/data/eps/indeterminate/.gitignore
index 583b009c..b2a2eb0 100644
--- a/filter/qa/cppunit/data/eps/indeterminate/.gitignore
+++ b/filter/qa/cppunit/data/eps/indeterminate/.gitignore
@@ -1 +1 @@
-*.wmf-*
+*.eps-*
diff --git a/filter/qa/cppunit/data/met/indeterminate/.gitignore b/filter/qa/cppunit/data/met/indeterminate/.gitignore
index 583b009c..8276f42 100644
--- a/filter/qa/cppunit/data/met/indeterminate/.gitignore
+++ b/filter/qa/cppunit/data/met/indeterminate/.gitignore
@@ -1 +1 @@
-*.wmf-*
+*.met-*
diff --git a/filter/qa/cppunit/data/pcd/indeterminate/.gitignore b/filter/qa/cppunit/data/pcd/indeterminate/.gitignore
index 583b009c..23ad7d1 100644
--- a/filter/qa/cppunit/data/pcd/indeterminate/.gitignore
+++ b/filter/qa/cppunit/data/pcd/indeterminate/.gitignore
@@ -1 +1 @@
-*.wmf-*
+*.pcd-*
diff --git a/filter/qa/cppunit/data/pcx/indeterminate/.gitignore b/filter/qa/cppunit/data/pcx/indeterminate/.gitignore
index 583b009c..f73b097 100644
--- a/filter/qa/cppunit/data/pcx/indeterminate/.gitignore
+++ b/filter/qa/cppunit/data/pcx/indeterminate/.gitignore
@@ -1 +1 @@
-*.wmf-*
+*.pcx-*
diff --git a/filter/qa/cppunit/data/pict/indeterminate/.gitignore b/filter/qa/cppunit/data/pict/indeterminate/.gitignore
index e69de29..1bdee77 100644
--- a/filter/qa/cppunit/data/pict/indeterminate/.gitignore
+++ b/filter/qa/cppunit/data/pict/indeterminate/.gitignore
@@ -0,0 +1,2 @@
+*.pict-*
+*.pct-*
diff --git a/filter/qa/cppunit/data/ppm/indeterminate/.gitignore b/filter/qa/cppunit/data/ppm/indeterminate/.gitignore
index 583b009c..e9c5b17 100644
--- a/filter/qa/cppunit/data/ppm/indeterminate/.gitignore
+++ b/filter/qa/cppunit/data/ppm/indeterminate/.gitignore
@@ -1 +1 @@
-*.wmf-*
+*.ppm-*
diff --git a/filter/qa/cppunit/data/psd/indeterminate/.gitignore b/filter/qa/cppunit/data/psd/indeterminate/.gitignore
index 583b009c..49b8ba0 100644
--- a/filter/qa/cppunit/data/psd/indeterminate/.gitignore
+++ b/filter/qa/cppunit/data/psd/indeterminate/.gitignore
@@ -1 +1 @@
-*.wmf-*
+*.psd-*
diff --git a/filter/qa/cppunit/data/ras/indeterminate/.gitignore b/filter/qa/cppunit/data/ras/indeterminate/.gitignore
index 583b009c..60147ad 100644
--- a/filter/qa/cppunit/data/ras/indeterminate/.gitignore
+++ b/filter/qa/cppunit/data/ras/indeterminate/.gitignore
@@ -1 +1 @@
-*.wmf-*
+*.ras-*
diff --git a/filter/qa/cppunit/data/tga/indeterminate/.gitignore b/filter/qa/cppunit/data/tga/indeterminate/.gitignore
index 583b009c..38bf024 100644
--- a/filter/qa/cppunit/data/tga/indeterminate/.gitignore
+++ b/filter/qa/cppunit/data/tga/indeterminate/.gitignore
@@ -1 +1 @@
-*.wmf-*
+*.tga-*
diff --git a/filter/qa/cppunit/data/tiff/indeterminate/.gitignore b/filter/qa/cppunit/data/tiff/indeterminate/.gitignore
index 583b009c..9c056f0 100644
--- a/filter/qa/cppunit/data/tiff/indeterminate/.gitignore
+++ b/filter/qa/cppunit/data/tiff/indeterminate/.gitignore
@@ -1 +1,2 @@
-*.wmf-*
+*.tiff-*
+*.tif-*
commit 31bfb20c81b0d293a5531c381885791540f477b0
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Nov 6 14:19:28 2014 +0000
add a build-time regression test for pcd file format
Change-Id: Ie413372ab1cfc7e38570fdf65c6daca8c2cc426b
diff --git a/filter/CppunitTest_filter_pcd_test.mk b/filter/CppunitTest_filter_pcd_test.mk
new file mode 100644
index 0000000..071d76f
--- /dev/null
+++ b/filter/CppunitTest_filter_pcd_test.mk
@@ -0,0 +1,42 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_CppunitTest_CppunitTest,filter_pcd_test))
+
+$(eval $(call gb_CppunitTest_use_external,filter_pcd_test,boost_headers))
+
+$(eval $(call gb_CppunitTest_add_exception_objects,filter_pcd_test, \
+ filter/qa/cppunit/filters-pcd-test \
+))
+
+$(eval $(call gb_CppunitTest_use_libraries,filter_pcd_test, \
+ icd \
+ sal \
+ test \
+ tl \
+ unotest \
+ vcl \
+ $(gb_UWINAPI) \
+))
+
+$(eval $(call gb_CppunitTest_use_api,filter_pcd_test,\
+ udkapi \
+ offapi \
+))
+
+$(eval $(call gb_CppunitTest_use_ure,filter_pcd_test))
+$(eval $(call gb_CppunitTest_use_vcl,filter_pcd_test))
+
+$(eval $(call gb_CppunitTest_use_components,filter_pcd_test,\
+ configmgr/source/configmgr \
+))
+
+$(eval $(call gb_CppunitTest_use_configuration,filter_pcd_test))
+
+# vim: set noet sw=4 ts=4:
diff --git a/filter/Module_filter.mk b/filter/Module_filter.mk
index 7c7575a..33f0f74 100644
--- a/filter/Module_filter.mk
+++ b/filter/Module_filter.mk
@@ -88,6 +88,7 @@ $(eval $(call gb_Module_add_check_targets,filter,\
CppunitTest_filter_dxf_test \
CppunitTest_filter_eps_test \
CppunitTest_filter_met_test \
+ CppunitTest_filter_pcd_test \
CppunitTest_filter_pcx_test \
CppunitTest_filter_pict_test \
CppunitTest_filter_ppm_test \
diff --git a/filter/qa/cppunit/data/pcd/fail/.gitignore b/filter/qa/cppunit/data/pcd/fail/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/filter/qa/cppunit/data/pcd/indeterminate/.gitignore b/filter/qa/cppunit/data/pcd/indeterminate/.gitignore
new file mode 100644
index 0000000..583b009c
--- /dev/null
+++ b/filter/qa/cppunit/data/pcd/indeterminate/.gitignore
@@ -0,0 +1 @@
+*.wmf-*
diff --git a/filter/qa/cppunit/data/pcd/pass/.gitignore b/filter/qa/cppunit/data/pcd/pass/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/filter/qa/cppunit/data/pcd/pass/blank-square.pcd b/filter/qa/cppunit/data/pcd/pass/blank-square.pcd
new file mode 100644
index 0000000..a626b5f
Binary files /dev/null and b/filter/qa/cppunit/data/pcd/pass/blank-square.pcd differ
diff --git a/filter/qa/cppunit/data/psd/pass/blank-square.psd b/filter/qa/cppunit/data/psd/pass/blank-square.psd
new file mode 100644
index 0000000..fc811da
Binary files /dev/null and b/filter/qa/cppunit/data/psd/pass/blank-square.psd differ
diff --git a/filter/qa/cppunit/filters-pcd-test.cxx b/filter/qa/cppunit/filters-pcd-test.cxx
new file mode 100644
index 0000000..681dc7d
--- /dev/null
+++ b/filter/qa/cppunit/filters-pcd-test.cxx
@@ -0,0 +1,71 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <unotest/filters-test.hxx>
+#include <test/bootstrapfixture.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include <tools/stream.hxx>
+#include <vcl/graph.hxx>
+
+#include <osl/file.hxx>
+#include <osl/process.h>
+
+extern "C"
+{
+ SAL_DLLPUBLIC_EXPORT bool SAL_CALL
+ GraphicImport(SvStream & rStream, Graphic & rGraphic,
+ FilterConfigItem*);
+}
+
+using namespace ::com::sun::star;
+
+/* Implementation of Filters test */
+
+class PcdFilterTest
+ : public test::FiltersTest
+ , public test::BootstrapFixture
+{
+public:
+ PcdFilterTest() : BootstrapFixture(true, false) {}
+
+ virtual bool load(const OUString &,
+ const OUString &rURL, const OUString &,
+ unsigned int, unsigned int, unsigned int) SAL_OVERRIDE;
+
+ /**
+ * Ensure CVEs remain unbroken
+ */
+ void testCVEs();
+
+ CPPUNIT_TEST_SUITE(PcdFilterTest);
+ CPPUNIT_TEST(testCVEs);
+ CPPUNIT_TEST_SUITE_END();
+};
+
+bool PcdFilterTest::load(const OUString &,
+ const OUString &rURL, const OUString &,
+ unsigned int, unsigned int, unsigned int)
+{
+ SvFileStream aFileStream(rURL, STREAM_READ);
+ Graphic aGraphic;
+ return GraphicImport(aFileStream, aGraphic, NULL);
+}
+
+void PcdFilterTest::testCVEs()
+{
+ testDir(OUString(),
+ getURLFromSrc("/filter/qa/cppunit/data/pcd/"),
+ OUString());
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(PcdFilterTest);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 7b0f4dc514d3fb9c79809afcf3fb118f0a7d0b38
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Nov 6 14:00:09 2014 +0000
coverity#1000834 Use of untrusted string value
and
coverity#706196 Use of untrusted string value
coverity#1244947 Use of untrusted string value
Change-Id: I5083aba2eff9e852a24513db431585922302b279
diff --git a/libreofficekit/qa/tilebench/tilebench.cxx b/libreofficekit/qa/tilebench/tilebench.cxx
index 9e2e550..013f866 100644
--- a/libreofficekit/qa/tilebench/tilebench.cxx
+++ b/libreofficekit/qa/tilebench/tilebench.cxx
@@ -58,6 +58,7 @@ int main( int argc, char* argv[] )
}
aTimes.push_back(TimeRecord("initialization"));
+ // coverity[tainted_string] - build time test tool
Office *pOffice = lok_cpp_init(argv[1]);
aTimes.push_back(TimeRecord());
diff --git a/smoketest/libtest.cxx b/smoketest/libtest.cxx
index 91bbcae..14df882 100644
--- a/smoketest/libtest.cxx
+++ b/smoketest/libtest.cxx
@@ -48,6 +48,7 @@ int main (int argc, char **argv)
return 1;
}
+ // coverity[tainted_string] - build time test tool
Office *pOffice = lok_cpp_init( argv[1] );
if( !pOffice )
{
diff --git a/soltools/cpp/_cpp.c b/soltools/cpp/_cpp.c
index bfa93be..08520f4 100644
--- a/soltools/cpp/_cpp.c
+++ b/soltools/cpp/_cpp.c
@@ -52,6 +52,7 @@ __cdecl
curtime = ctime(&t);
maketokenrow(3, &tr);
expandlex();
+ // coverity[tainted_string] - build time test tool
setup(argc, argv);
fixlex();
if (!Pflag)
commit 7ca34b04c0915cb00345afa1ba7cfc736f82f9a1
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Nov 6 13:47:59 2014 +0000
coverity#735645 Division or modulo by zero
Change-Id: I03b8404f90b6a05189591d8e3423f32810057a47
diff --git a/sw/source/filter/xml/xmltbli.cxx b/sw/source/filter/xml/xmltbli.cxx
index fdc0bbc..fb3ed88 100644
--- a/sw/source/filter/xml/xmltbli.cxx
+++ b/sw/source/filter/xml/xmltbli.cxx
@@ -23,6 +23,7 @@
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/text/XTextTable.hpp>
#include <com/sun/star/table/XCellRange.hpp>
+#include <o3tl/numeric.hxx>
#include <svl/itemset.hxx>
#include <svl/zformat.hxx>
#include <sax/tools/converter.hxx>
@@ -2446,6 +2447,8 @@ void SwXMLTableContext::_MakeTable( SwTableBox *pBox )
{
if( !colIter->isRelative )
{
+ if (nMinAbsColWidth == 0)
+ throw o3tl::divide_by_zero();
sal_Int32 nRelCol = ( colIter->width * nMinRelColWidth) / nMinAbsColWidth;
colIter->width = nRelCol;
colIter->isRelative = true;
commit 62eaee4858397f409da1474c71f1954b8d8e571e
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Nov 6 13:43:39 2014 +0000
coverity#1242693 Untrusted value as argument
and
coverity#1242727 Untrusted value as argument
Change-Id: Ibb212c39f43bcd3f0e0ddf973d1512ed0d7c2fc6
diff --git a/svl/source/filerec/filerec.cxx b/svl/source/filerec/filerec.cxx
index eb5b8b1..d8d3a10 100644
--- a/svl/source/filerec/filerec.cxx
+++ b/svl/source/filerec/filerec.cxx
@@ -527,6 +527,13 @@ bool SfxMultiRecordReader::ReadHeader_Impl()
_pStream->SeekRel( + _nContentSize );
else
_pStream->Seek( _nContentSize );
+ const size_t nMaxRecords = _pStream->remainingSize() / sizeof(sal_uInt32);
+ if (_nContentCount > nMaxRecords)
+ {
+ SAL_WARN("svl", "Parsing error: " << nMaxRecords << " max possible entries, but " <<
+ _nContentCount << " claimed, truncating");
+ _nContentCount = nMaxRecords;
+ }
_pContentOfs = new sal_uInt32[_nContentCount];
memset(_pContentOfs, 0, _nContentCount*sizeof(sal_uInt32));
#if defined(OSL_LITENDIAN)
commit 85005715a516d47697e3fcf86f51df35f442648d
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Nov 6 13:31:26 2014 +0000
coverity#1242570 Untrusted value as argument
Change-Id: Ic79bd1931ee291746b6dae138b3181d4baddbe3e
diff --git a/svtools/source/misc/imap.cxx b/svtools/source/misc/imap.cxx
index 4eebd55..344372d 100644
--- a/svtools/source/misc/imap.cxx
+++ b/svtools/source/misc/imap.cxx
@@ -883,8 +883,18 @@ void ImageMap::ImpWriteImageMap( SvStream& rOStm, const OUString& rBaseURL ) con
void ImageMap::ImpReadImageMap( SvStream& rIStm, size_t nCount, const OUString& rBaseURL )
{
+ const size_t nMinRecordSize = 12; //circle, three 32bit numbers
+ const size_t nMaxRecords = rIStm.remainingSize() / nMinRecordSize;
+
+ if (nCount > nMaxRecords)
+ {
+ SAL_WARN("svtools.misc", "Parsing error: " << nMaxRecords << " max possible entries, but " <<
+ nCount << " claimed, truncating");
+ nCount = nMaxRecords;
+ }
+
// neue Objekte einlesen
- for ( size_t i = 0; i < nCount; i++ )
+ for (size_t i = 0; i < nCount; ++i)
{
sal_uInt16 nType;
commit 689f47d9c4a28468827bd0f9ed81911a024d59dc
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Nov 6 11:36:39 2014 +0000
coverity#1213366 Untrusted loop bound
Change-Id: Id5f2c8d199ffae4f23934ceb92184562d72c0b90
diff --git a/vcl/source/fontsubset/sft.cxx b/vcl/source/fontsubset/sft.cxx
index e8d8337..d66e158 100644
--- a/vcl/source/fontsubset/sft.cxx
+++ b/vcl/source/fontsubset/sft.cxx
@@ -1231,7 +1231,6 @@ static void FindCmap(TrueTypeFont *ttf)
const sal_uInt8* table = getTable(ttf, O_cmap);
sal_uInt32 table_size = getTableSize(ttf, O_cmap);
sal_uInt16 ncmaps = GetUInt16(table, 2, 1);
- unsigned int i;
sal_uInt32 AppleUni = 0; // Apple Unicode
sal_uInt32 ThreeZero = 0; /* MS Symbol */
sal_uInt32 ThreeOne = 0; /* MS UCS-2 */
@@ -1241,7 +1240,18 @@ static void FindCmap(TrueTypeFont *ttf)
sal_uInt32 ThreeFive = 0; /* MS Wansung */
sal_uInt32 ThreeSix = 0; /* MS Johab */
- for (i = 0; i < ncmaps; i++) {
+ const sal_uInt32 remaining_table_size = table_size-4;
+ const sal_uInt32 nMinRecordSize = 8;
+ const sal_uInt32 nMaxRecords = remaining_table_size / nMinRecordSize;
+ if (ncmaps > nMaxRecords)
+ {
+ SAL_WARN("vcl.fonts", "Parsing error in " << OUString::createFromAscii(ttf->fname) <<
+ ": " << nMaxRecords << " max possible entries, but " <<
+ ncmaps << " claimed, truncating");
+ ncmaps = nMaxRecords;
+ }
+
+ for (unsigned int i = 0; i < ncmaps; i++) {
/* sanity check, cmap entry must lie within table */
sal_uInt32 nLargestFixedOffsetPos = 8 + i * 8;
sal_uInt32 nMinSize = nLargestFixedOffsetPos + sizeof(sal_uInt32);
More information about the Libreoffice-commits
mailing list