Collabora Online is a collaborative online office suite based on LibreOffice technology. This is also the source for the Collabora Office apps for iOS and Android.
 
 
 
 
 
 
Go to file
Miklos Vajna 4433e03492 client session fuzzer: try harder to empty SocketPoll::_newCallbacks on shutdown
The DocumentBroker dtor adds a callback:

	#0  SocketPoll::addCallback(std::function<void ()> const&) (this=0x377dce0 <Admin::instance()::admin>, fn=...) at ./net/Socket.hpp:773
	#1  0x0000000000947db5 in Admin::rmDoc (this=<optimized out>, docKey=...) at wsd/Admin.cpp:544
	#2  0x0000000000bb8192 in DocumentBroker::~DocumentBroker (this=0x61900000e690) at wsd/DocumentBroker.cpp:579

So even if the fuzzer called Admin::instance().poll() on shutdown, there
was one more callback inserted to the list later, leading to OOM in the
long run.

Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I0832d839b098407fa9e8aadb6f84388a85d62323
2022-05-31 15:10:51 +02:00
.git-hooks git-hooks: pre-commit: clean up not needed tweak of the perl library path 2021-07-12 19:47:59 +03:00
.github CI: codeql-analysis: work with core co-22.05 assets 2022-05-13 10:43:03 +02:00
.gitpod-files Remove the old vex-based welcome dialog code 2022-04-04 10:53:07 +02:00
android Translated using Weblate (Nepali) 2022-05-18 12:25:18 +02:00
browser Form tab: Add missing icons for control actions 2022-05-31 10:49:27 +01:00
common perf: collect unusual logging code-paths somewhere else. 2022-05-30 12:32:14 +01:00
cypress_test cypress: skipping columns test in impress/table_operation_spec.js 2022-05-19 13:33:20 +05:30
debian Update debian/changelog for 22.05 test build 2022-04-05 14:13:49 +02:00
docker docker: added new remoteconfigurl env variable 2022-05-10 22:31:40 +05:30
etc backward compatibility: /lool/convert-to endpoint 2021-11-19 13:27:27 +01:00
fuzzer client session fuzzer: try harder to empty SocketPoll::_newCallbacks on shutdown 2022-05-31 15:10:51 +02:00
gtk rename: remaining lool->cool changes 2021-11-18 14:14:11 +01:00
indexing indexing: rename 'lool' -> 'cool' 2021-11-17 09:17:31 +01:00
ios Define ENABLE_DEBUG in the iOS app Xcode project, not DEBUG 2022-04-26 11:13:14 +03:00
kit perf: deflate optimize for speed not size for full tiles. 2022-05-30 12:32:14 +01:00
kubernetes/helm rename: remaining lool->cool changes 2021-11-18 14:14:11 +01:00
man coolconfig: updated man page 2022-01-13 22:25:44 +01:00
net socket: only wakeup the mainloop on addCallback for the 1st callback. 2022-05-26 19:53:11 -04:00
scripts A new attept to create list of Collabora Online translators properly 2021-11-26 13:03:24 +01:00
test fuzz: cleanup constructors. 2022-05-31 15:10:51 +02:00
tools wsd: log macro cleanup 2022-04-26 11:13:44 +03:00
wsd Proxy: send explicit charset=utf-8 2022-05-30 11:32:27 +02:00
.cirrus.yml CI: codeql-analysis: work with core co-22.05 assets 2022-05-13 10:43:03 +02:00
.clang-format clang-format: turn off BreakBeforeBinaryOperators 2021-04-23 09:51:06 +02:00
.clang-tidy Png: avoid multiplication at int precision, then converting to long 2016-12-05 11:56:46 +01:00
.gitignore wsd: kill coolwsd_fuzzer 2022-04-20 07:12:03 -04:00
.gitpod.dockerfile GitPod: Fix yml and dockerfile, edit configure recipe 2021-11-26 18:20:53 +01:00
.gitpod.yml GitPod: Update core assets url to 22.05 2022-04-19 15:32:43 +02:00
.mailmap Add .mailmap 2021-11-26 11:44:09 +01:00
AUTHORS Apply the pre-branch rename script to re-organize the source. 2016-11-25 09:58:48 +00:00
CODE_OF_CONDUCT.md Complete the CoC statement 2020-10-20 20:45:57 +03:00
CONTRIBUTING.md Add info on PR policy 2022-01-19 10:21:23 +01:00
COPYING fix license headers 2020-10-01 11:56:43 +02:00
ChangeLog Apply the pre-branch rename script to re-organize the source. 2016-11-25 09:58:48 +00:00
Makefile.am This should do something cooler. 2022-05-10 11:48:33 +01:00
NEWS Apply the pre-branch rename script to re-organize the source. 2016-11-25 09:58:48 +00:00
PROBLEMS rename: remaining lool->cool changes 2021-11-18 14:14:11 +01:00
README.CONTRIBUTING.md Clarify, re: E-mail. 2020-10-26 19:03:53 +00:00
README.md README: correct URL to build machine 2022-04-25 12:02:46 +02:00
SECURITY.md Update SECURITY.md 2021-07-05 12:24:14 +02:00
autogen.sh Use portable `/usr/bin/env bash` shebang, instead of `/bin/bash` one. 2020-12-17 11:52:18 +00:00
browsersync-config.js browser: update config files 2021-11-10 17:18:56 +01:00
configure.ac We do not use tunneled sidebar any more 2022-04-21 17:05:18 +02:00
coolkitconfig-mobile.xcu rename: remaining lool->cool changes 2021-11-18 14:14:11 +01:00
coolkitconfig.xcu.in typo: Hiddent->Hidden 2022-05-22 17:55:20 +02:00
coolwsd-generate-proof-key Make coolwsd-generate-proof-key prepared for a custom prefix. 2021-12-22 15:18:35 +01:00
coolwsd-systemplate-setup Avoid using only "real" paths for the tmpfont thing 2022-04-26 13:59:29 +03:00
coolwsd-welcome.xml Remove the old vex-based welcome dialog code 2022-04-04 10:53:07 +02:00
coolwsd.init.rhel6 rename: remaining lool->cool changes 2021-11-18 14:14:11 +01:00
coolwsd.service rename: remaining lool->cool changes 2021-11-18 14:14:11 +01:00
coolwsd.spec.in check for existence of old config file before config migration 2022-01-18 07:44:47 +01:00
coolwsd.xml.in wsd: infobar: add config value "fetch_update_check" 2022-05-12 18:25:10 +01:00
discovery.xml Editing of document templates does not work well currently 2022-03-15 14:05:12 +01:00
favicon.ico replace favicon.ico (Collabora Online logo) 2020-12-14 13:56:00 +01:00
g Use custom local branch name as explicit remote user branch name for PR 2021-07-16 08:53:58 +02:00
jsstress.in rename coolstress to jsstress 2021-11-16 11:16:45 +01:00
sysconfig.coolwsd rename: remaining lool->cool changes 2021-11-18 14:14:11 +01:00
trace-event.sample2.json Try repeated async events with same name and id 2021-06-23 12:26:27 +03:00

README.md

Build Status Build Status

Build Status Build Status

Open in Gitpod

Collabora Online

Master: Pull request policy

irc Telegram Forum Website L10n Gitpod Ready-to-Code

LibreOffice in the Cloud on your own Terms

Key features

  • View and edit text documents, spreadsheets, presentations & more
  • Collaborative editing features
  • Works in any modern browser no plugin needed
  • Open Source primarily under the MPLv2 license. Some parts are under other open source licences, see e.g. browser/LICENSE.

Website

For many more details, build instructions, downloads and more please visit https://collaboraonline.github.io/

Developer assistance

Please ask your questions on any of the bridged IRC/Matrix/Telegram rooms

Join the conversation on our Discourse server at https://forum.collaboraonline.com/

Watch the tinderbox status (if it's green) at https://cpci.cbg.collabora.co.uk:8080/job/Tinderbox%20for%20online%20master%20against%20co-22.05/

Development bits

This project has several components:

  • wsd/
    • The Web Services Daemon - which accepts external connections
  • kit/
    • The client which lives in its own chroot and renders documents
  • common/
    • Shared code between these processes
  • browser/
    • The client side JavaScript component
  • test/
    • C++ based unit tests
  • cypress_test/
    • JavaScript based integration tests

Please consult the README files in the component's directory for more details:

  • wsd/README
  • browser/README

iOS and Android apps

See the corresponding READMEs:

  • ios/README
  • android/README

GitPod

Head over to https://collaboraonline.github.io/post/build-code/ select gitpod from the dropdown and follow the steps.

Interesting things to keep in mind:

  • Make sure your browser is not blocking windows/tabs from opening from the gitpod workspace URL (maybe add *.gitpod.io to your browser's whitelist)
    • The GitPod tasks will run automatically and further instructions will be printed out right in the terminal
    • VNC tab will open automatically if not just click in the left icon Remote explorer and click 6080. You will see a tab completly black, that's normal.
    • As mentioned in those instructions if you are not using the VS Code desktop and if you are only relying on your browser please:
      • Do not try to click the URL from the make run out put instead copy that URL and execute firefox [paste URL here]
      • Head over to the tab where the VNC is opened (black page), you will see Firefox opening there, maximize and have fun.
      • You can also run cypress tests via GitPod but you will need to use Firefox, for that just prepend CYPRESS_BROWSER="firefox" to the desired command. Example: CYPRESS_BROWSER="firefox" make check for every test or CYPRESS_BROWSER="firefox" make check-desktop spec=impress/scrolling_spec.js for one specific test on desktop

Enjoy!