on a fresh openSUSE Leap 15.1 I got errors without this:
wsd/AdminModel.hpp:346:10: error: ‘list’ in namespace ‘std’ does not name a template type
std::list<unsigned> _memStats;
^~~~
etc.
Change-Id: I19c42bd48bbcc0787a3398d1882c974ebf5bdf81
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89298
Tested-by: Andras Timar <andras.timar@collabora.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
- target ClientSession::_handleInput(), since crashing there would bring
down the whole loolwsd (not just a kit process), and it deals with
input from untrusted users (browsers)
- add a --enable-fuzzers configure switch to build with
-fsanitize=fuzzer (compared to normal sanitizers build, this is the only
special flag needed)
- configuring other sanitizers is not done automatically, either use
--with-sanitizer=... or the environment variables from LODE's sanitizer
config
- run the actual fuzzer like this:
./clientsession_fuzzer -max_len=16384 fuzzer/data/
- note that at least openSUSE Leap 15.1 sadly ships with a clang with
libfuzzer static libs removed from the package, so you need a
self-built clang to run the fuzzer (either manual build or one from
LODE)
- <https://chromium.googlesource.com/chromium/src/testing/libfuzzer/+/refs/heads/master/efficient_fuzzing.md#execution-speed>
suggests that "You should aim for at least 1,000 exec/s from your fuzz
target locally" (i.e. one run should not take more than 1 ms), so try
this minimal approach first. The alternative would be to start from the
existing loolwsd_fuzzer binary, then step by step cut it down to not
fork(), not do any network traffic, etc -- till it's fast enough that
the fuzzer can find interesting input
- the various configurations start to be really complex (the matrix is
just very large), so try to use Util::isFuzzing() for fuzzer-specific
changes (this is what core.git does as well), and only resort to ifdefs
for the Util::isFuzzing() itself
Change-Id: I72dc1193b34c93eacb5d8e39cef42387d42bd72f
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89226
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
==13901==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x000000904678 bp 0x7ffdb9e21580 sp 0x7ffdb9e21340 T0)
==13901==The signal is caused by a READ memory access.
==13901==Hint: address points to the zero page.
#0 0x904677 in LOOLProtocol::tokenize[abi:cxx11](char const*, unsigned long, char) common/Protocol.hpp:113:40
#1 0x898c52 in LOOLProtocol::tokenize(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char) common/Protocol.hpp:141:16
#2 0x18dc2d9 in LOOLProtocol::ParseVersion(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) common/Protocol.cpp:35:51
#3 0x1148824 in ClientSession::_handleInput(char const*, int) wsd/ClientSession.cpp:358:64
#4 0x18efcb8 in Session::handleMessage(bool, WSOpCode, std::vector<char, std::allocator<char> >&) common/Session.cpp:232:13
Next commit will add the actual simple fuzzer that found this.
Change-Id: I8623b4451a57390f6f84c11084c5a1120a11fcc5
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89225
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Dynamic shortcuts == the long press on the app icon to edit recent
documents.
Also fixes crashing with too many recent documents.
Change-Id: I844e60de6523039889539cfe1e3c1bb70dc062bc
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89235
Tested-by: Jan Holesovsky <kendy@collabora.com>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
For incremental builds, it's not enough to check the node_modules
folder, we also need to check whether all used binaries are in
place.
Change-Id: I9c5f380f3845195bfa2dbfb03ab269ce4659c4ae
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89233
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
No idea if all the devices have this, and also it is API 26+, but at
least something; the default view is a mess.
Change-Id: Icd9aa588885e91bc7b35285044fdcfc335d426d9
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89231
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
We are running make -j2 check with Jenkins now.
Which fails with these unit tests. Let's just
serialize all, so we can test cypress test
parallelization.
Change-Id: Ib1ed21581c88cd86cbd13ef5c6b8b98abaef1da5
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89211
Tested-by: Tamás Zolnai <tamas.zolnai@collabora.com>
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
Change-Id: I27be9917d5f0df77bfdde9a8aeac129c934d58de
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89212
Tested-by: Pedro Pinto da Silva <pedro.silva@collabora.com>
Reviewed-by: Pedro Pinto da Silva <pedro.silva@collabora.com>
Change-Id: I542aca8c98312bf32209625cc9acce68abc5280c
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89210
Tested-by: Pedro Pinto da Silva <pedro.silva@collabora.com>
Reviewed-by: Pedro Pinto da Silva <pedro.silva@collabora.com>
The Line-style listbox selector(shape properties) in mobile online
is missing a label, so to make it clear lets add a label for it.
Adding an invisible label for line-style listbox in core.git does
not work as invisible widgets are not dumped by core to generate
jsdialog messages. So the next option is to splice in a label
entry to the parsed jsdialog message at the appropriate place.
This also makes it easier for adding any missing labels, by just
needing to add the id of the control and the label text.
Change-Id: I45913ec25278e8566092a738c08cfdd8bc46e39f
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/88994
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
And so far disable the various sorting possibilities, they are not
working for the recent files (yet).
Change-Id: I233f6cd05d15cf0c3f9f2bf940a8233ee5300cb7
Change-Id: I8ddcb18570cdd5b92a09dced2a219abf110ecbcf
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89201
Tested-by: Pedro Pinto da Silva <pedro.silva@collabora.com>
Reviewed-by: Pedro Pinto da Silva <pedro.silva@collabora.com>
It should be 'screen and ...', but since the other rules don't have
this additional screen condition, I just remove it.
Change-Id: Idabf28fbee303e19f1a5f5c75f3eb5e7387ac3fa
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89170
Tested-by: Tamás Zolnai <tamas.zolnai@collabora.com>
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
has the focus
Change-Id: Ib6eece050c7b962087d229cf484c8873a214d359
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89159
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Henry Castro <hcastro@collabora.com>
The file was imported from node_modules/autolinker/dist/Autolinker.js
the main reason is to analyze the source code, debug and patch
if necessary
To get the source code from npm repository
make libs
Change-Id: I3eea7cc6e8d61623398d77ed74e751ccd861252b
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89150
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Henry Castro <hcastro@collabora.com>
The file was imported from node_modules/json-js/json2.js
the main reason is to analyze the source code, debug and patch
if necessary
To get the source code from npm repository
make libs
Change-Id: I7d80646704b368f6961c75f1dabaabecde2527e6
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89146
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Henry Castro <hcastro@collabora.com>
After fixing this single assertion failure, the
./loolwsd_fuzzer --config-file=loolwsd.xml --o:storage.filesystem[@allow]=true --o:logging.level=fatal
invocation works. (It does not really fuzz anything, but it's a single
unpriviliged process at least.)
Change-Id: I45f877e5eb023e3ddfc96a7373c6300e4bb77962
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89115
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
The file was imported fromnode_modules/select2/dist/js/select2.js
the main reason is to analyze the source code, debug and patch
if necessary
To get the source code from npm repository
make libs
Change-Id: Ibe0fd718d1dd6157d463a304c56fd6475821a0eb
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89110
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Henry Castro <hcastro@collabora.com>
When we open a new panel in the mobile wizard the new
content appears after a short animation.
I suspect that this animation makes tests to fail sometimes
with 'detached from DOM' error. Waiting the end of the animation
seems help on this issue.
Change-Id: Ie9cc322ff9bd9a6287b4d57126e6afab91a98713
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89107
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
This reverts commit 52775325f5.
Slide Show menu had a single item, and Slide menu only had a few.
Revert in favor of saving on menu width for now.
Change-Id: I81f0f96849e3eeaf571611d059325d72b85ec334
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89040
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Aron Budea <aron.budea@collabora.com>
The actual saving to Nextcloud takes time, so what happened was that the
LOOLWSD instance managed to tear down itself, new one was created, and
only after that the onPause() was called - which then tried to send the
"save ...", but there was nothing that could actually receive that.
Change-Id: I3c503461dc7d7e9c2e784911931ddc36b382cc5e
* Bigger icons for the recent files.
* Possibility to switch to list view (which displays file sizes).
Change-Id: I5c0f3b4670d7e3f2acb2935adb6be1b78553c5ea