Commit Graph
453 Commits
Author SHA1 Message Date
David Blatter 24fad8bf16 fix detection of encrypted zip entries
if a zip entry is encrypted, bit 1 of the flags field is set. previously
bit 1 of the version field was checked. a valid zip with a required version
of e.g. 45 generated a 'file is corrupt' error

see: https://pkware.cachefly.net/webdocs/APPNOTE/APPNOTE-6.3.3.TXT
(sections 4.4.3 and 4.4.4)

Change-Id: I8bba6ead582e6cab55c8449f202807b50befea07
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113420
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2021-04-02 12:51:29 +02:00
Noel 99bc040b13 loplugin:referencecasting in oox..package
Change-Id: I4276c6c45cb2478afbc0231a15c402ddcafd00a7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110950
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-02-16 07:52:03 +01:00
Philipp Hofer eb4c2e96f3 tdf#123936 Formatting files in module package with clang-format
Change-Id: I3ff80c6c636003d468f384e0d6fbfb5233e0b4da
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105696
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Tested-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2020-11-19 19:23:33 +01:00
Noel 29fefd93b8 loplugin:reducevarscope in package
Change-Id: If35738232ceb0442d57b9e9b37a850e0920e61b2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105335
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-11-05 17:19:42 +01:00
Luboš Luňák b3c4ca3439 properly finish encrypting when parallel zip saving (tdf#134796)
More fixing of 353d4528b8, that I didn't get quite right
in 08161f8535. There must be one final processDeflated()
call that has isDeflaterFinished() return true, so that
encrypting is finalized properly.

Change-Id: Id15190cc467a801ccc57e1efe802cdd8fc618a71
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98878
Tested-by: Luboš Luňák <l.lunak@collabora.com>
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-07-16 13:02:33 +02:00
Luboš Luňák 08161f8535 fix encrypted parallel zip saving (tdf#134332)
ZipOutputEntryBase::processDeflated() was calling isDeflaterFinished()
to find out whether to finalize and dispose m_xCipherContext.
With ZipOutputEntryParallel this was always true, so the context
was disposed after the first call. That was originally correct, because
originally processDeflated() was called just once at the very end, but
353d4528b8 changed to calling it several
times.

Change-Id: I1e4a0c887e4ba7ac7b20fa315169eaa911335fde
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98625
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-07-14 10:40:24 +02:00
Noel Grandin a2fc883173 use more std::container::insert instead of std::copy
which is both more compact code, and more efficient, since the insert
method can do smarter resizing

Change-Id: I17f226660f87cdf002edccc29b4af8fd59a25f91
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96948
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-06-24 08:43:55 +02:00
Noel Grandin 3c800667b7 compact namespace in package
Change-Id: I9956f715e00a0c2814b79617f37dd0c09f049ad0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93858
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-05-09 20:01:31 +02:00
Noel Grandin 076fa17b5c loplugin:buriedassign in l,o,p*
Change-Id: Ib2dd157d43c4387eda009475311761fe2eb627cb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92241
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-04-15 19:25:53 +02:00
Noel Grandin 7bf5228525 loplugin:flatten in package
Change-Id: I4d81c7c1d241e51565d7cbc6549ac586136f0c86
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91616
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-04-03 12:39:54 +02:00
Gabor Kelemen d3e1ada454 Remove unused using declarations in oox...xmlsecurity
Found by:
run-clang-tidy-10 -checks=-*,misc-unused-using-decls

Change-Id: I3e95791e223ef01e140a6217e29a9efae428a784
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90876
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-03-25 09:13:27 +01:00
Noel Grandin b5da97197b Revert "loplugin:constfields in package..registry"
This reverts commit 31138ff772.

Now that we know that making fields has negative side effects
like disabling assignment operator generation.

Change-Id: I3f1ae65532f441c8be5ebca5866b8a1e1c69318c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90363
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-03-12 08:17:11 +01:00
Noel Grandin b5bde198a8 remove some unused local vars
found by my new loplugin:unusedvariableplus

Change-Id: Ic3f55f492d43a53d8850a97d44059ff127fd69a2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87573
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-01-28 09:18:31 +01:00
Dennis Francis 353d4528b8 tdf#125662: do parallel-zip in batches
In this approach the input stream is read one batch (of constant size)
at a time and each batch is compressed by ThreadedDeflater. After
we are done with a batch, the deflated buffer is processed straightaway
(directed to file backed storage).

Change-Id: I2d42f86cf5898e4d746836d94bf6009a8d3b0230
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86596
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-01-13 12:11:44 +01:00
Caolán McNamara 902a0c52c4 check crcs when fuzzing after all
I end up with something that fails in the fuzzing setup but which
cannot be used as a testcase in a normal build

Change-Id: I20c73aa009fdc289d95d34a8adf8ddd5882f6694
Reviewed-on: https://gerrit.libreoffice.org/84013
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-11-28 16:51:22 +01:00
Noel Grandin 7a76939177 loplugin:constmethod in package
Change-Id: I44bc86a179164e1d039dd3a5f2c8a23396d870b3
Reviewed-on: https://gerrit.libreoffice.org/77931
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-08-22 09:34:43 +02:00
Noel Grandin ea20fcce1d close some more holes in structures
and improve the pahole script so I can just run it once over the whole
codebase

Change-Id: I7e1775974a3a61f8c0e40646158f01163ace60cc
Reviewed-on: https://gerrit.libreoffice.org/76122
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-07-23 06:46:41 +02:00
Caolán McNamara 8ba4058ede cid#1448353 Uncaught exception
Change-Id: Ia967db3f73bee9167be4fd88090b27bfdbd4aca0
Reviewed-on: https://gerrit.libreoffice.org/75881
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-07-18 21:37:55 +02:00
Caolán McNamara 7c2a072d91 cid#1448443 Uninitialized pointer field
Change-Id: I664c9c6e1479466bfe5a1af35a554aaa15fac2ea
Reviewed-on: https://gerrit.libreoffice.org/75695
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-07-16 16:02:38 +02:00
Stephan Bergmann 6ad13e0e5d Demote from std::unique_lock to std::scoped_lock where applicable
Change-Id: I53a019f05978bab62ad0da3d0eb08f37f8ec1e18
Reviewed-on: https://gerrit.libreoffice.org/74414
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-06-20 10:19:33 +02:00
Noel Grandin 48f62672ab loplugin:logexceptionnicely in package..reportdesign
Change-Id: Ib5438d346fa95299848aaf2144e54f5551c0a906
Reviewed-on: https://gerrit.libreoffice.org/74100
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-15 19:58:07 +02:00
Luboš Luňák aa44e10942 parallel deflate compression (one stream, multiple threads)
ZipPackageStream::saveChild() already had one threaded compression,
but that still uses only one thread for one stream. Many documents
contain many streams (where this is useful), but large documents
often contain one huge content.xml, which then would be compressed
using just one thread.
But it is in fact possible to do deflate in parallel on the same data,
at the cost of somewhat increased CPU usage (spread over threads).
This is handled separately from the background thread path, as
integrating these two approaches would probably be needlessly complex
(since they both internally use ThreadPool, the tasks should often
intermix and parallelize anyway).
On my 4-core (8 HT threads) machine this reduces the compression time
of tdf#113042 from 3s to 1s.

Change-Id: Ifbc889a27966f97eb1ce2ce01c5fb0b151a1bdf8
Reviewed-on: https://gerrit.libreoffice.org/73032
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-05-28 12:28:01 +02:00
Luboš Luňák 7cd3f267cf split out thread functionality from ZipOutputEntry
It can be easily separated out, it looked like hacked in. And
I will need to do more refactoring of the class, so this shouldn't
be more complex than necessary.

Change-Id: I302da55409e9195274907ca4939c37fbb2427b18
Reviewed-on: https://gerrit.libreoffice.org/73031
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-05-28 12:27:48 +02:00
Luboš Luňák ee22409ab6 try harder not to deflate small streams in a thread
E.g. with the bugdoc from tdf#93553, most of the streams to save
are actually small, they just do not provide XSeekable. Since it
seems all the streams are already fully available by the time
the zip packaging is done, fallback to XInputStream::available()
to find out if the stream is small.
With this, the zipping part of saving tdf#93553 is now down
from ~1.5s to ~0.5s.
This presumably also makes the hack for tdf#93553 unnecessary.

Change-Id: Id9bb7d835400d6d8f147f5c11ade684a549aba53
Reviewed-on: https://gerrit.libreoffice.org/73030
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-05-28 12:27:40 +02:00
Luboš Luňák aeb2014ba4 remove code confusion about threads vs thread tasks
A threadpool controls a number of threads that execute a number
of thread *tasks* from a queue. The API even says they are tasks.
So it's damn confusing when ZipPackageStream::saveChild()
claims to limit the number of threads to 4x the maximum number
of threads. It limits the number of queued thread tasks.

Change-Id: I317497f27a82d92a7c8566b14aaeae73a4ffef1f
Reviewed-on: https://gerrit.libreoffice.org/72677
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-05-21 17:25:32 +02:00
Arkadiy Illarionov 0e4c542f7a Use hasElements to check Sequence emptiness in [l-r]*
Similar to clang-tidy readability-container-size-empty

Change-Id: Idd67f332b04857a39df26bad1733aae21236f105
Reviewed-on: https://gerrit.libreoffice.org/71764
Tested-by: Jenkins
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
2019-05-17 11:20:15 +02:00
Noel Grandin 1a5b12aa5d optimise find/insert pattern
if we're doing a find/insert on a set or a map, it is better to just do
a conditional insert/emplace operation than triggering two lookups.

Change-Id: I80da5097f5a89fe30fa348ce5b6e747c34287a8d
Reviewed-on: https://gerrit.libreoffice.org/70937
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-04-19 13:19:31 +02:00
Stephan Bergmann 2449bf48c4 Remove redundant bitwise and when converting from sal_uInt32 to sal_Int32
...which has no effect on the result, but silences benign Clang
-fsanitize=implicit-signed-integer-truncation warnings

Change-Id: I0953914a35f2a8c4caa6f75d4918e3b3366d07e8
Reviewed-on: https://gerrit.libreoffice.org/68628
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-03-03 11:03:06 +01:00
Arkadiy Illarionov 9d7620613d Simplify containers iterations in oox, opencl, package
Use range-based loop or replace with STL functions

Change-Id: I91405920d91383bc6cf13b9497d262b1f6f0a84d
Reviewed-on: https://gerrit.libreoffice.org/67848
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-02-15 12:21:28 +01:00
Noel Grandin 82b9102769 loplugin:indentation in oox..package
Change-Id: Ie50a1ad6e27786ccdaae2ba1ae96f5682c4a38f6
Reviewed-on: https://gerrit.libreoffice.org/67560
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-02-09 17:07:45 +01:00
Gabor Kelemen 0c64df2432 o3tl::make_unique -> std::make_unique in i18npool...reportdesign
Since it is now possible to use C++14, it's time to replace
the temporary solution with the standard one

Change-Id: I8bee1344f7df82536f31bc5e4ec4fd379cac1d04
Reviewed-on: https://gerrit.libreoffice.org/66704
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-01-22 08:38:28 +01:00
Stephan Bergmann ab9b67bbb0 Remove obsolete SAL_FALLTHROUGH completely
...after 7ffdd830d5
"HAVE_CPP_ATTRIBUTE_FALLTHROUGH is always true now"

Change-Id: I54e5ff4e036a6bb3e5774d1c0524158aae18e937
Reviewed-on: https://gerrit.libreoffice.org/64800
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-12-08 13:28:16 +01:00
Noel Grandin 2e2d736ccb loplugin:collapseif in framework..sal
Change-Id: I3068b18f5cff024a48a8f8c68d69cadad30fe4d5
Reviewed-on: https://gerrit.libreoffice.org/62953
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-11-07 07:56:39 +01:00
Mike Kaganski 2a3f5d1152 tdf#120703 PVS: V547 Expression is always true/false
Change-Id: I856345576ff5c10a41509a97ad4539272bd55568
Reviewed-on: https://gerrit.libreoffice.org/62803
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-11-03 14:13:57 +01:00
Johnny_M 2a06d78483 Translate German comments
Change-Id: I94cdb753d01dfd0d5b8f78ede1819b281b840ab2
Reviewed-on: https://gerrit.libreoffice.org/62669
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2018-10-31 14:26:51 +01:00
Noel Grandin 6eba86ae9d clang-tidy misc-redundant-expression
Change-Id: I708b0b486a233071f95592ccdb97f27fc35a23c4
Reviewed-on: https://gerrit.libreoffice.org/61783
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-10-15 12:53:38 +02:00
Noel Grandin 31138ff772 loplugin:constfields in package..registry
Change-Id: Ie139490f2b008bf294910d002af711f8f41fe76d
Reviewed-on: https://gerrit.libreoffice.org/61727
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-10-13 07:43:45 +02:00
Noel Grandin fada813d5d loplugin:simplifyconstruct in l10ntools..package
Change-Id: I8dba8ef1e7455af1e55bbd6086b49c0606bf4927
Reviewed-on: https://gerrit.libreoffice.org/60212
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-09-09 19:40:02 +02:00
Noel Grandin 80343351c9 loplugin:constantparam (2)
Change-Id: I528f22876497f87159e3b9453362ebbfb55b7092
2018-08-29 09:38:51 +02:00
Stephan Bergmann 3cc6d3611a Related rhbz#1618703: Properly handle failure encoding zip file
...when e.g. FIPS mode makes ZipFile::StaticGetCipher fail by throwing an
exception which would be caught by ZipPackageStream::saveChild (in
package/source/zippackage/ZipPackageStream.cxx) alright (and translated into
bSuccess = false), if ZipFile::StaticGetCipher didn't unhelpfully swallow and
ignore all exceptions in an outer try-catch.

Change-Id: I14376128515df1dd4bdac921edd8ab94cc9b7617
Reviewed-on: https://gerrit.libreoffice.org/59514
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-08-23 20:38:26 +02:00
Noel Grandin 3d5fde2064 loplugin:useuniqueptr in consumeScheduledThreadEntry
Change-Id: I9c0b05081915712089d363a476d6354cfba2461d
Reviewed-on: https://gerrit.libreoffice.org/59010
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-08-15 08:38:18 +02:00
Noel Grandin 67649406d7 loplugin:returnconstant in oox,package
Change-Id: I1dade7ddde6b1e226861d32f24f65be5bb9d9352
Reviewed-on: https://gerrit.libreoffice.org/58880
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-08-13 08:35:16 +02:00
Caolán McNamara ce2792eda3 use C++11 exception rethrowing
for those cases where we are doing relatively simple catching and rethrowing
e.g. catch in one thread and throw in main thread.

Change-Id: I6192017c4ec99dd671a9582f7b004096b0fc4525
Reviewed-on: https://gerrit.libreoffice.org/58588
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-04 18:49:48 +02:00
Caolán McNamara dacc1b40df ofz#9597 rethrown IOException not caught by catch IOException
under google oss-fuzz, asan + clang version 6.0.0 (trunk 315613)

when using our own exception thrower, but builtin C++11 support works

also, ofz#9266, ofz#9591, ofz#9597, ofz#9622, etc

Change-Id: I29c692da880b49268284de2f61be07fa94f33bc6
Reviewed-on: https://gerrit.libreoffice.org/58223
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-07-31 08:40:49 +02:00
Gabor Kelemen c6e5d55171 Add missing sal/log.hxx headers
rtl/string.hxx and rtl/ustring.hxx both unnecessarily #include <sal/log.hxx> (and don't make use of it themselves), but many other files happen to depend on it.
This is a continuation of commit 6ff2d84ade to be able to remove those unneeded includes.

This commit adds missing headers to every file found by:
grep -FwL sal/log.hxx $(git grep -Elw 'SAL_INFO|SAL_INFO_IF|SAL_WARN|SAL_WARN_IF|SAL_DETAIL_LOG_STREAM|SAL_WHERE|SAL_STREAM|SAL_DEBUG')
to directories from l10ntools to reportdesign

Change-Id: Ia2dc93dd848c2dc0b6a8cb6e19849c614ec55198
Reviewed-on: https://gerrit.libreoffice.org/58205
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-07-30 16:26:31 +02:00
Caolán McNamara 959f22c4e4 skip checking zip crcs when fuzzing
Change-Id: If90828e508178dfaaee51f88cf52ada0aec5970c
Reviewed-on: https://gerrit.libreoffice.org/58120
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-07-27 12:41:10 +02:00
Kevin Dubrulle d0f44d8ba7 tdf#84323 - sal - add sane sleep interface: cleanup osl_waitThread
Replace osl_waitThread by osl::Thread::wait.
Use std::chrono instead of TimeValue.

Change-Id: I71691d014feeeb0c5d0ba29d048bda8e25e6e7dd
Reviewed-on: https://gerrit.libreoffice.org/57130
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-07-08 11:48:40 +02:00
Noel Grandin 2ddddc46fd Make ThreadPool::pushTask take param by std::unique_ptr
And fix leak in XclExpRowBuffer::Finalize, was not freeing the
synchronous task it creates

Change-Id: Id1e9ddb5d968e6b95d9d2b5ca0c9e50774580182
Reviewed-on: https://gerrit.libreoffice.org/56874
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-07-04 08:35:13 +02:00
Jochen Nitschke 8ddca0648a tdf#42949 remove unused compheler includes ..
and fix the fallout

Change-Id: I15bc5d626f4d157cbc69a87392078b41e621d14e
Reviewed-on: https://gerrit.libreoffice.org/54882
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-06-05 10:56:36 +02:00
Noel Grandin 7e937a1384 loplugin:useuniqueptr in Inflater,Deflater
Change-Id: I55833664a6e76d781908b8f1f721dd9a4946e35f
Reviewed-on: https://gerrit.libreoffice.org/53224
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-04-23 08:14:07 +02:00