Граф коммитов

589 Коммитов

Автор SHA1 Сообщение Дата
Jed Davis 0ba66c379f Bug 1534780 - Add free interconversion between UniqueFileHandle and ipc::FileDescriptor and use it in a few places. r=froydnj
Now that UniqueFileHandle can be used more widely, and with
ipc::FileDescriptor being essentially a copyable UniqueFileHandle, it
makes sense to add a move constructor and a "forget"-like method to
convert between them when needed.

Depends on D26737

Differential Revision: https://phabricator.services.mozilla.com/D26738

--HG--
extra : moz-landing-system : lando
2019-06-28 19:46:58 +00:00
Narcis Beleuzu a89b67e772 Backed out 15 changesets (bug 1479960, bug 1426526, bug 1534780, bug 1536697) for toolchain bustages on UniquePtrExtensions.h . CLOSED TREE
Backed out changeset a8518ea4b594 (bug 1479960)
Backed out changeset 7172762c4b87 (bug 1536697)
Backed out changeset 2ea5ccb8f3a1 (bug 1426526)
Backed out changeset d892a888fe9c (bug 1426526)
Backed out changeset 2c4d12bdfec3 (bug 1479960)
Backed out changeset 8a322064cf6d (bug 1479960)
Backed out changeset 47d387b6cd4a (bug 1479960)
Backed out changeset 8332565a6943 (bug 1479960)
Backed out changeset 9d7f1835f96f (bug 1479960)
Backed out changeset 0aa8af4965c5 (bug 1479960)
Backed out changeset 036809330a51 (bug 1479960)
Backed out changeset 39e18373e3d3 (bug 1479960)
Backed out changeset 6c2b995a9d30 (bug 1479960)
Backed out changeset 3c2b31744645 (bug 1534780)
Backed out changeset 26bb00a94d5d (bug 1534780)
2019-06-28 22:42:00 +03:00
Jed Davis d32b9ba525 Bug 1534780 - Add free interconversion between UniqueFileHandle and ipc::FileDescriptor and use it in a few places. r=froydnj
Now that UniqueFileHandle can be used more widely, and with
ipc::FileDescriptor being essentially a copyable UniqueFileHandle, it
makes sense to add a move constructor and a "forget"-like method to
convert between them when needed.

Depends on D26737

Differential Revision: https://phabricator.services.mozilla.com/D26738

--HG--
extra : moz-landing-system : lando
2019-06-20 22:40:15 +00:00
Ciure Andrei 72f3f971fb Backed out 15 changesets (bug 1479960, bug 1426526, bug 1534780, bug 1536697) for causing build bustages CLOSED TREE
Backed out changeset 5645e0cc3915 (bug 1479960)
Backed out changeset a7c09894c6a0 (bug 1536697)
Backed out changeset 510f03381af9 (bug 1426526)
Backed out changeset 7cf4735a088f (bug 1426526)
Backed out changeset 41080844e645 (bug 1479960)
Backed out changeset fdba3c5f8fd0 (bug 1479960)
Backed out changeset 26a8ebcb2db4 (bug 1479960)
Backed out changeset d0d383e5bae1 (bug 1479960)
Backed out changeset c418095bb7b7 (bug 1479960)
Backed out changeset 7b78b1945532 (bug 1479960)
Backed out changeset c47d47d4073d (bug 1479960)
Backed out changeset 71253b62a633 (bug 1479960)
Backed out changeset ae525f20bdbb (bug 1479960)
Backed out changeset 7fba719355d7 (bug 1534780)
Backed out changeset 771db331860a (bug 1534780)
2019-06-20 19:54:57 +03:00
Jed Davis f32394bec8 Bug 1534780 - Add free interconversion between UniqueFileHandle and ipc::FileDescriptor and use it in a few places. r=froydnj
Now that UniqueFileHandle can be used more widely, and with
ipc::FileDescriptor being essentially a copyable UniqueFileHandle, it
makes sense to add a move constructor and a "forget"-like method to
convert between them when needed.

Depends on D26737

Differential Revision: https://phabricator.services.mozilla.com/D26738

--HG--
extra : moz-landing-system : lando
2019-06-17 02:19:37 +00:00
Bob Owen 2cad8de361 Bug 1552160 Part 1: Roll-up of chromium sandbox update and mozilla patches to get a running browser. r=jld,aklotz,tjr,bobowen
This updates security/sandbox/chromium/ files to chromium commit 84108231f6e6e0772fb9a4643679ce76aa771e67.

Existing and new patches applied from security/sandbox/chromium-shim/patches/with_update/ to give a compiling and mostly working browser.
See patch files for additional commit comments.

--HG--
rename : security/sandbox/chromium-shim/base/debug/debugging_flags.h => security/sandbox/chromium-shim/base/debug/debugging_buildflags.h
rename : security/sandbox/chromium-shim/base/win/base_features.h => security/sandbox/chromium-shim/base/win/base_win_buildflags.h
2019-06-12 11:10:48 +01:00
Gian-Carlo Pascutto 84108d4e2b Bug 1555589 - Include sys/prctl.h not linux/prctl.h. r=jld
Differential Revision: https://phabricator.services.mozilla.com/D33517

--HG--
extra : moz-landing-system : lando
2019-06-03 21:35:44 +00:00
Sylvestre Ledru e226046cb8 Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan
# ignore-this-changeset

Depends on D28954

Differential Revision: https://phabricator.services.mozilla.com/D28956

--HG--
extra : moz-landing-system : lando
2019-05-01 08:47:10 +00:00
Jed Davis 64717a0c9f Bug 1543790 - Fix RDD sandboxing conditions so the parent and child processes agree. r=gcp
If the system doesn't support seccomp-bpf, the parent process won't
try to set up sandboxing, but the child process has a separate check that
didn't test for this, and ends up failing a release assertion (in
SandboxReporterClient, but we also release-assert that installing the
seccomp-bpf policy succeeds).

This patch just fixes the child-side conditional to match the intended
behavior, but in the long term we should consider redesigning SandboxInfo
to avoid this.

Differential Revision: https://phabricator.services.mozilla.com/D27624

--HG--
extra : moz-landing-system : lando
2019-04-16 13:53:20 +00:00
Jed Davis 69140d1e65 Bug 1543858 - Adjust Linux sandbox policies to tolerate glibc's qsort. r=gcp
Differential Revision: https://phabricator.services.mozilla.com/D27632

--HG--
extra : moz-landing-system : lando
2019-04-16 06:50:50 +00:00
Sylvestre Ledru 03fc65347c Bug 1542146 - Apply the change with the option StatementMacros from clang-format-8 r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D26280

--HG--
extra : moz-landing-system : lando
2019-04-05 21:42:17 +00:00
Csoregi Natalia ba58e936bd Backed out changeset 4ad80127f89f (bug 1519636) for bustage on MarkupMap.h and nsAccessibilityService.cpp. CLOSED TREE 2019-04-05 09:48:19 +03:00
Sylvestre Ledru d1c1878603 Bug 1519636 - clang-format-8: Reformat recent changes to the Google coding style r=Ehsan
clang-format-8 upstream had some improvements wrt macros
See: https://reviews.llvm.org/D33440
This is why the diff is bigger than usual

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D26098

--HG--
extra : moz-landing-system : lando
2019-04-04 21:36:16 +00:00
Narcis Beleuzu 24dbe577a5 Backed out changeset 389b6bbd76db (bug 1519636) for bustages on MarkupMap.h . CLOSED TREE 2019-04-05 00:27:56 +03:00
Sylvestre Ledru 399dbd28fe Bug 1519636 - clang-format-8: Reformat recent changes to the Google coding style r=Ehsan
clang-format-8 upstream had some improvements wrt macros
See: https://reviews.llvm.org/D33440
This is why the diff is bigger than usual

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D26098

--HG--
extra : moz-landing-system : lando
2019-04-04 20:12:23 +00:00
Gian-Carlo Pascutto d0f1336b84 Bug 1535794 - Allow getrandom() in all sandbox policies. r=jld
Differential Revision: https://phabricator.services.mozilla.com/D25610

--HG--
extra : moz-landing-system : lando
2019-04-02 12:37:58 +00:00
Gian-Carlo Pascutto 4f54fd166f Bug 1536137 - Add getrusage to RDD policy. r=jld
Depends on D24190

Differential Revision: https://phabricator.services.mozilla.com/D25621

--HG--
extra : moz-landing-system : lando
2019-04-01 16:10:05 +00:00
Gian-Carlo Pascutto 9261673631 Bug 1536127 - Add F_SETFD/CLOEXEC logic to RDD process. r=jld
Differential Revision: https://phabricator.services.mozilla.com/D24190

--HG--
extra : moz-landing-system : lando
2019-04-01 16:10:07 +00:00
Sylvestre Ledru ef0bfc3822 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D24168

--HG--
extra : moz-landing-system : lando
2019-03-31 15:12:55 +00:00
srujana 6e50bb941c Bug 1451127 : Added files to UNIFIED_SOURCES and removed conflicts. r=handyman
Added files to UNIFIED_SOURCES and removed conflicts. Files that required flags still remain in SOURCES.  SOURCES use "StrictOrderingOnAppendListWithFlagsFactory" base class and UNIFIED_SOURCES use "StrictOrderingOnAppendList" base class. As of now I do not think there is an option to add flags for the later. So the files requiring flags are kept in SOURCES.

Differential Revision: https://phabricator.services.mozilla.com/D23795

--HG--
extra : moz-landing-system : lando
2019-03-20 21:32:50 +00:00
brendaadel 7b652fc9d8 Bug 1474759 - added strings to the empty MOZ_Crash() in Linux sandboxing module. r=handyman
Added reason strings to all MOZ_CRASH in linux/sandbox

Differential Revision: https://phabricator.services.mozilla.com/D24143

--HG--
extra : moz-landing-system : lando
2019-03-22 07:43:29 +00:00
Alex Gaynor 177fb00eba Bug 1375863 - fold MOZ_CONTENT_SANDBOX and MOZ_GMP_SANDBOX into MOZ_SANDBOX; r=jld,firefox-build-system-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D22975

--HG--
extra : moz-landing-system : lando
2019-03-18 22:31:59 +00:00
Gurzau Raul 6b94d177d1 Merge mozilla-central to inbound. a=merge CLOSED TREE 2019-03-01 09:28:28 +02:00
Alex Gaynor f789c68941 Bug 1531476 - replace MaybeFileDesc with FileDescriptor? in IPDL; r=mccr8
Also contains a small amount of unrelated devirtualization of IPC methods.

Differential Revision: https://phabricator.services.mozilla.com/D21592

--HG--
extra : moz-landing-system : lando
2019-02-28 21:20:40 +00:00
Jed Davis af97210807 Bug 1506291 - Add Linux sandboxing for the RDD (media decoder) process. r=gcp,mjf,flod
The seccomp-bpf policy is currently just the "common" policy with no
additions (but with the fixes in bug 1511560 to enable shared memory
creation).  The file broker policy allows shared memory creation and
nothing else.  The namespace setup is the same as for GMP (i.e., as
restrictive as we currently can be).

The sandbox can be turned off for troubleshooting by setting the
environment variable MOZ_DISABLE_RDD_SANDBOX, similarly to the other
process types.

Tested against https://demo.bitmovin.com/public/firefox/av1/ with the
necessary prefs set.

Depends on D20895

Differential Revision: https://phabricator.services.mozilla.com/D14525

--HG--
extra : moz-landing-system : lando
2019-02-27 20:14:54 +00:00
Jed Davis 6fc87bff63 Bug 1511560 - Allow dup and ftruncate (when needed) in SandboxPolicyCommon. r=gcp
File descriptors are sometimes dup()ed in the process of communicating
them over IPC; some of this may be unnecessary (due to insufficient
use of move-only types), but dup() is relatively harmless.  It was
previously allowed for both content and GMP, so this doesn't change
anything.

The handling of ftruncate is a little complicated -- it's used for IPC
shared memory, but only when creating segments; so GMP doesn't allow
it and should continue not allowing it, but content needs it and RDD
will as well.  As a result, the subclass indicates if it will be needed.

Note that even when we have memfd_create support (bug 1440203),
ftruncate is still necessary even though brokering may not.

Depends on D14523

Differential Revision: https://phabricator.services.mozilla.com/D14524

--HG--
extra : moz-landing-system : lando
2019-02-27 20:14:52 +00:00
Jed Davis bb4d6b8630 Bug 1511560 - Move the socketpair handling into SandboxPolicyCommon. r=gcp
The sandbox broker uses socketpair to construct the per-request channels
over which responses are sent; thus, if and only if the policy will be
using brokering, it will allow socketpair as safely as possible (i.e.,
denying datagram sockets if possible).

Depends on D14522

Differential Revision: https://phabricator.services.mozilla.com/D14523

--HG--
extra : moz-landing-system : lando
2019-02-23 00:44:10 +00:00
Jed Davis 2dfa36102d Bug 1511560 - Move syscalls for adjusting memory mapping properties into SandboxPolicyCommon. r=gcp
madvise is used by our malloc (and probably others), and mprotect is
used with shared memory, including when created by another process, so
the common policy should include those rules.

Depends on D14521

Differential Revision: https://phabricator.services.mozilla.com/D14522

--HG--
extra : moz-landing-system : lando
2019-02-23 00:44:08 +00:00
Jed Davis 6acf27b81f Bug 1511560 - Move the Linux sandbox broker hooks into SandboxPolicyCommon. r=gcp
This will allow other policies to use brokering if needed (e.g., RDD and
similar utility processes may need to access /dev/shm to create shared
memory).  The concrete policy class can deny filesystem access completely
(matching the current behavior of the GMP policy) by passing nullptr to
the superclass constructor instead.

Depends on D14520

Differential Revision: https://phabricator.services.mozilla.com/D14521

--HG--
extra : moz-landing-system : lando
2019-02-23 00:44:06 +00:00
Jed Davis 86607a852d Bug 1500297 - Require a broker client in ContentSandboxPolicy at level > 1. r=gcp
ContentSandboxPolicy currently allows direct filesystem access if it
isn't given a broker client; this is a legacy design from the B2G era,
before the current idea of "sandbox level".  With this patch, it allows
filesystem access at level 1, and above that it requires brokering.

This is both to reduce the opportunities for accidentally having a
too-permissive sandbox and to prepare for refactoring the broker glue in
bug 1511560.

Depends on D14519

Differential Revision: https://phabricator.services.mozilla.com/D14520

--HG--
extra : moz-landing-system : lando
2019-02-27 15:23:25 +00:00
Jed Davis 0901298ac2 Bug 1500297 - Fix Linux content sandbox level 1. r=gcp
Level 1 is meant to enable some seccomp-bpf filtering, but still allow
direct access to the filesystem, and level 2 is where brokering starts.
This was accidentally broken in 1365257 (making "level 1" act like level
2); this patch fixes that.

This feature obviously isn't used much given how long nobody noticed it was
broken, but it's useful to have around for troubleshooting, and it's
actually easier to fix it than edit it out of the documentation.

Differential Revision: https://phabricator.services.mozilla.com/D14519

--HG--
extra : moz-landing-system : lando
2019-02-27 15:23:25 +00:00
Ryan Hunt a6457a95be Bug 1523969 part 21 - Move method definition inline comments to new line in 'security/'. r=ehsan
Differential Revision: https://phabricator.services.mozilla.com/D21122

--HG--
extra : rebase_source : cceafd5ad497236b2ce532727ad3435b8ea49fa7
extra : histedit_source : 630de35708f3a312d4b286a94d92536d086c4c9c
2019-02-25 16:12:13 -06:00
Kris Maglione b2f85650a1 Bug 1524687: Part 12 - Convert everything else to static registration. r=erahm
--HG--
extra : source : 625f71135038f79c075f758e316fbb00097c9a18
extra : intermediate-source : 7a1ef487a9e74d66b112034051e49b77023860b8
extra : histedit_source : 88d19dbee4a99faa191e49e2847c4c59aba05b0c%2C5ee702f97153152d31124e0c5f3e8318cbeb3195
2019-01-29 16:03:41 -08:00
arthur.iakab 470dbf03b6 Backed out 5 changesets (bug 1524687) for causing build bustages on platform.h CLOSED TREE
Backed out changeset 0f06a6b51bfe (bug 1524687)
Backed out changeset 7a1ef487a9e7 (bug 1524687)
Backed out changeset accad7b4cbc7 (bug 1524687)
Backed out changeset eb33f7e6467c (bug 1524687)
Backed out changeset 86cf09db340b (bug 1524687)
2019-02-21 02:04:02 +02:00
Kris Maglione 95c0cf7aa9 Bug 1524687: Part 12 - Convert everything else to static registration. r=erahm
--HG--
extra : rebase_source : ccc1b4f8559152237e523b67ea76e2b406c1cb11
extra : intermediate-source : e8ad5619116c31fc4d38e0e789ddb9b5d2a5bb25
extra : source : 625f71135038f79c075f758e316fbb00097c9a18
2019-01-29 16:03:41 -08:00
Ehsan Akhgari e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
Gian-Carlo Pascutto 2ea3add3ad Bug 1511099 - Make MAY_CREATE handling more consistent. r=jld
Differential Revision: https://phabricator.services.mozilla.com/D13523

--HG--
extra : moz-landing-system : lando
2019-01-07 15:21:32 +00:00
Gian-Carlo Pascutto d8bb24d28e Bug 1507830 - When using Wayland, don't allow connections to the X server. r=jld
Differential Revision: https://phabricator.services.mozilla.com/D13560

--HG--
extra : moz-landing-system : lando
2018-11-30 22:23:31 +00:00
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Jed Davis e9397cfcac Bug 1508898 - Prepare the Linux sandbox's socketcall/ipc-call dispatch table for reformatting. r=gcp
The tables in SandboxFilterUtil.cpp should remain vertically aligned,
but clang-format would disagree.  This patch excludes that region from
reformatting, and applies the other changes that clang-format would make
there.

Differential Revision: https://phabricator.services.mozilla.com/D12499

--HG--
extra : moz-landing-system : lando
2018-11-21 11:05:31 +00:00
Kris Maglione 74481e8af4 Bug 1479035: Part 1 - Don't create event queues for stub nsThread wrappers. r=froydnj
Most of the times when we automatically create nsThread wrappers for threads
that don't already have them, we don't actually need the event targets, since
those threads don't run XPCOM event loops. Aside from wasting memory, actually
creating these event loops can lead to leaks if a thread tries to dispatch a
runnable to the queue which creates a reference cycle with the thread.

Not creating the event queues for threads that don't actually need them helps
avoid those foot guns, and also makes it easier to figure out which treads
actually run XPCOM event loops.

MozReview-Commit-ID: Arck4VQqdne

--HG--
extra : source : a03a61d6d724503c3b7c5e31fe32ced1f5d1c219
extra : intermediate-source : 5152af6ab3e399216ef6db8f060c257b2ffbd330
extra : histedit_source : ef06000344416e0919f536d5720fa979d2d29c66%2C4671676b613dc3e3ec762edf5d72a2ffbe6fca3f
2018-07-27 15:13:12 -07:00
Narcis Beleuzu 72f96acd7b Backed out 2 changesets (bug 1479035) for assertion failure: mEvents. CLOSED TREE
Backed out changeset 89a0c0874d40 (bug 1479035)
Backed out changeset 5152af6ab3e3 (bug 1479035)
2018-09-26 23:40:13 +03:00
Kris Maglione 81eb50cf31 Bug 1479035: Part 1 - Don't create event queues for stub nsThread wrappers. r=froydnj
Most of the times when we automatically create nsThread wrappers for threads
that don't already have them, we don't actually need the event targets, since
those threads don't run XPCOM event loops. Aside from wasting memory, actually
creating these event loops can lead to leaks if a thread tries to dispatch a
runnable to the queue which creates a reference cycle with the thread.

Not creating the event queues for threads that don't actually need them helps
avoid those foot guns, and also makes it easier to figure out which treads
actually run XPCOM event loops.

MozReview-Commit-ID: Arck4VQqdne

--HG--
extra : rebase_source : fcf8fa50e748c4b54c3bb1997575d9ffd4cbaae1
extra : source : a03a61d6d724503c3b7c5e31fe32ced1f5d1c219
2018-07-27 15:13:12 -07:00
Noemi Erli 36cc0e5fa7 Backed out 2 changesets (bug 1479035) for build bustages bustages netwerk/cache2/target on CLOSED TREE
Backed out changeset 5f8706213610 (bug 1479035)
Backed out changeset a03a61d6d724 (bug 1479035)
2018-09-26 08:54:03 +03:00
Kris Maglione a6edc4f204 Bug 1479035: Part 1 - Don't create event queues for stub nsThread wrappers. r=froydnj
Most of the times when we automatically create nsThread wrappers for threads
that don't already have them, we don't actually need the event targets, since
those threads don't run XPCOM event loops. Aside from wasting memory, actually
creating these event loops can lead to leaks if a thread tries to dispatch a
runnable to the queue which creates a reference cycle with the thread.

Not creating the event queues for threads that don't actually need them helps
avoid those foot guns, and also makes it easier to figure out which treads
actually run XPCOM event loops.

MozReview-Commit-ID: Arck4VQqdne

--HG--
extra : rebase_source : 02c5572b92ee48c11697d90941336e10c03d49cf
2018-07-27 15:13:12 -07:00
Jed Davis 2fcf5c7252 Bug 1489735 - Quietly deny sched_setaffinity in content process sandbox r=gcp
Differential Revision: https://phabricator.services.mozilla.com/D5908

--HG--
extra : moz-landing-system : lando
2018-09-17 16:43:52 +00:00
Gian-Carlo Pascutto ac0adb0b5e Bug 1480755 - Add support for new Mesa device probing. r=jld
MozReview-Commit-ID: CD9ATGHUOZ1

Differential Revision: https://phabricator.services.mozilla.com/D3910

--HG--
extra : moz-landing-system : lando
2018-08-22 01:52:44 +00:00
Jed Davis c6eafa306d Bug 1480554 - Fix missing include in SandboxOpenedFiles.cpp. r=gcp 2018-08-16 09:15:56 -06:00
Jed Davis 5e630f7ccf Bug 1481978 - Change IPC CloseSuperfluousFds to prevent accidentally heap-allocating closures. r=glandium
Closures are nice but -- as pointed out in bug 1481978 comment #2 --
it's a footgun to take a std::function argument in a context where heap
allocation isn't safe.

Fortunately, non-capturing closures convert to C function pointers,
so a C-style interface with a void* context can still be relatively
ergonomic.
2018-08-15 19:08:40 -06:00
Jed Davis 09db14abce Bug 1439057 - Tighten /dev/shm access in Linux content sandbox policy. r=gcp
This patch uses the shared memory name prefixes introduced in bug 1447867
to prevent access to /dev/shm files of other applications or other
processes within the same browser instance.

When a shared memory implementation that doesn't use shm_open is available
(specifically, the memfd_create support to be added in bug 1440203),
/dev/shm access is completely denied.

MozReview-Commit-ID: L2ylG5KrXTU
2018-07-31 10:41:29 -06:00
Jed Davis ec4764f25f Bug 1243108 - Work around Linux kernel bug causing broker responses to be dropped. r=gcp
MozReview-Commit-ID: LX2kEXybFGW

--HG--
extra : rebase_source : 922af6565786ec0eb4d041606d094b4a3fde739b
2018-07-19 18:20:03 -06:00
Robert Bartlensky 4859064649 Bug 1476340: Fix DEAD_STORE errors in security/sandbox/linux/*. r=gcp
MozReview-Commit-ID: 3jNPRWGb7rU

--HG--
extra : rebase_source : 0a335ce52dcaadd5ba7a2c81a523c5537336efd8
2018-07-17 18:30:09 +01:00
Jed Davis b0a1468c01 Bug 1456911 - Rewrite the fd shuffling to be simpler & handle identity mappings correctly. r=froydnj
This replaces some old Chromium code that tries to minimally disentangle
an arbitrary file descriptor mapping with simpler algorithm, for several
reasons:

1. Do something appropriate when a file descriptor is mapped to the same
fd number in the child; currently they're ignored, which means they'll
be closed if they were close-on-exec.  This implementation duplicates
the fd twice in that case, which seems to be uncommon in practice; this
isn't maximally efficient but avoids special-case code.

2. Make this more generally applicable; the previous design is
specialized for arbitrary code running between fork and exec, but we
also want to use this on OS X with posix_spawn, which exposes a very
limited set of operations.

3. Avoid the use of C++ standard library iterators in async signal safe
code; the Chromium developers mention that this is a potential problem in
some debugging implementations that take locks.

4. In general the algorithm is simpler and should be more "obviously
correct"; more concretely, it should get complete coverage just by being
run normally in a debug build.

As a convenient side benefit, CloseSuperfluousFds now takes an arbitrary
predicate for which fds to leave open, which means it can be used in
other code that needs it without creating a fake fd mapping.

MozReview-Commit-ID: EoiRttrbrKL

--HG--
extra : rebase_source : 336e0ba9f56dc80f7347dc62617b4ad1efea7e7e
2018-04-25 17:44:08 -06:00
Tom Ritter 2313bfe0d4 Bug 1457482 Add --enable-lto that turns on LTO r=glandium
MozReview-Commit-ID: DjICW7OKqzB

--HG--
extra : rebase_source : 92c766880845ec89305ef1e66ff13223421ac152
2018-04-13 15:55:39 -05:00
Miko Mynttinen 4c85ef17cc Bug 1465060 - Part 1: Fix warnings for std::move() use r=froydnj
MozReview-Commit-ID: HpdFXqQdIOO

--HG--
extra : rebase_source : 1e7eea4f2d4ec16ec0c559a8afb26976ddbf4d07
2018-06-01 17:59:07 +02:00
Emilio Cobos Álvarez 1e9c395548 Bug 1466168: Remove mozilla::Forward in favor of std::forward. r=froydnj
Same approach as the other bug, mostly replacing automatically by removing
'using mozilla::Forward;' and then:

  s/mozilla::Forward/std::forward/
  s/Forward</std::forward</

The only file that required manual fixup was TestTreeTraversal.cpp, which had
a class called TestNodeForward with template parameters :)

MozReview-Commit-ID: A88qFG5AccP
2018-06-02 09:33:26 +02:00
Emilio Cobos Álvarez fffb25b74f Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Jed Davis 2788528721 Bug 1462640 - Allow content processes to mincore() individual pages. r=gcp
MozReview-Commit-ID: IclghYFyMPp

--HG--
extra : rebase_source : 5096ced288cfd120a6d28c87a7528851617a70e9
2018-05-18 17:36:47 -06:00
jld@mozilla.com c7c75836c0 Backed out 2 changesets (bug 1439057, bug 1447867)
Backed out changeset baeab3bff807 (bug 1439057)
Backed out changeset 1a024d5ca77b (bug 1447867)

--HG--
extra : rebase_source : d39e4657b4117706a53bc42b7817424cf43f9148
2018-04-23 07:59:02 -06:00
Jed Davis c5a7acdf32 Bug 1439057 - Tighten /dev/shm access in Linux content sandbox policy. r=froydnj,gcp
This patch uses the shared memory name prefixes introduced in bug 1447867
to prevent access to /dev/shm files of other applications or other
processes within the same browser instance.

When a shared memory implementation that doesn't use shm_open is available
(specifically, the memfd_create support to be added in bug 1440203),
/dev/shm access is completely denied.

MozReview-Commit-ID: L2ylG5KrXTU

--HG--
extra : rebase_source : ca1deece6117e843d691a13fff05bd0f97ec0408
2018-04-12 23:48:16 -06:00
Jan Beich 4c4327e871 Bug 1452509 - Make -DMOZ_ALSA global and prune duplicate -DMOZ_PULSEAUDIO. r=froydnj
MozReview-Commit-ID: 6O0pkscXczw

--HG--
extra : rebase_source : 0d8dffa1f8e4942b3fe8832ad860409ec24784a2
2018-03-19 02:13:04 +00:00
Gian-Carlo Pascutto f32916cd1e Bug 1434711 - WebGL causes a crash with the AMDGPU-PRO video driver. r=jld
Factor out the ATI-based driver detection code and use this to set
specific permissions needed by this driver. In passing, unnest some
of the SandboxBroker fallback paths, and make it properly report
the operation in all error paths.

MozReview-Commit-ID: FrRpicj5NF

--HG--
extra : rebase_source : 1410cdddcf1264dc1572f9b9b691f9d08a2061cf
2018-03-29 14:04:46 +02:00
Jed Davis 17bafad434 Bug 1450740 - Don't sandbox network namespace when X11 named sockets aren't accessible. r=gcp
MozReview-Commit-ID: KiL4GwMms3a

--HG--
extra : rebase_source : 08cfd2325d081eb95a4a69805077828bfbb521ac
2018-04-02 15:19:04 -06:00
Jed Davis 0b5eeab7a5 Bug 1445003 - Detect RenderDoc and adjust the sandbox policy so it can work. r=gcp
RenderDoc, a graphics debugging tool, uses a preload library that
creates a listening socket (Internet-domain) early in startup and
accepts connections from the frontend.  If it's detected (via env vars),
we allow accept/accept4 (but not socket/bind/listen), and remain in
the parent process's network namespace so that other processes can
connect to the socket.

This doesn't change the sandbox policy if not running under RenderDoc.

MozReview-Commit-ID: 964RW4BFh4u

--HG--
extra : rebase_source : d4a954e68431d84fa2e0edea4171421a948794af
2018-03-12 20:21:08 -06:00
Gian-Carlo Pascutto 4fb9bf8576 Bug 1416016 - Resolve symlinks in the file broker as a last resort. r=jld
MozReview-Commit-ID: B7OMyARk9u8

--HG--
extra : rebase_source : 1106c8f877f748a2ef7e6af3b8e6965a3cf67e33
2018-03-09 21:14:39 +01:00
Jed Davis 6c8bcd4625 Bug 1440206 - Allow brokered access to a subset of connect() in the Linux content sandbox. r=gcp
This is to support WebGL with hybrid graphics drivers that connect to
a secondary X server for GL (Primus and VirtualGL), without allowing
access to arbitrary sockets.  In addition to local X11 connections,
Primus needs to connect to the Bumblebee daemon (otherwise it will exit
the calling process).

The broker support is limited to AF_UNIX, to non-datagram sockets (see
bug 1066750), and to pathname addresses.  Abstract addresses could
theoretically be handled but there isn't currently a compelling reason
to, and the broker very much assumes it's dealing with a C-style string
referring to a filesystem path and not an arbitrary byte sequence
(including NULs).

At a higher level: If the GPU X server is remote then it won't work,
but it won't work anyway because WebGL requires features that aren't
supported by indirect GLX.  If the GPU X server is local but the browser
is inside a chroot, it will fail to connect unless /tmp/.X11-unix is
bind-mounted into the chroot; hopefully this use case is not common.

MozReview-Commit-ID: IvI2jYDRZZ2
2018-03-09 19:31:23 -07:00
Jed Davis 60310ac5ad Bug 1434392 - Don't preload libmozsandbox in grandchild processes, only the sandboxed children themselves. r=gcp
--HG--
extra : rebase_source : a2c784640c65e0e476fc6ccf8639581462902c86
2018-03-07 18:55:20 -07:00
Gian-Carlo Pascutto dadfe06714 Bug 1438394 - Do SysV IPC check before bailing out early. r=jld
The SandboxLaunchPrepare currently bails out early if it detects a
lack of user namespaces. Hoist the check for drivers needing SysV
IPC up so it's done before that early exit, and the required env
variables get correctly set.

With this we no longer fail with a SIGSYS sandbox error, though
in a debug build we still crash because many assumptions in the
graphics stack get broken when that fails to initialize the driver
for WebGL.

MozReview-Commit-ID: 8n3Hx6VSjTF

--HG--
extra : rebase_source : 99bf2d25a7435b0eb95f186a00cc7723a196be4c
2018-03-07 19:05:00 +01:00
Jed Davis 6d88e1e82d Bug 1438391 - Detect VirtualGL and weaken the sandbox enough for it to work. r=gcp
MozReview-Commit-ID: BXmm8JSfkeI

--HG--
extra : rebase_source : 7e56f39df23fa4cc2ad0e38702f8ad6353d74e69
2018-02-22 19:14:41 -07:00
Jed Davis 61d0766fcf Bug 1438401 - Quietly fail shmget() in sandboxed content processes. r=gcp
The X11 symbol interposition isn't enough, possibly because Cairo can
also use XCB.  Interposing XCB is more difficult because the API exposes
more protocol details.  Instead, just allow shmget to be called and
fail; this will tell Cairo that it can't use SysV IPC with the X server,
which is what we want.

MozReview-Commit-ID: 5y9tE7UXMTE

--HG--
extra : rebase_source : bb1e81116742a299bc4e412062327e69032ab3b3
2018-02-27 21:30:08 -07:00
Jed Davis 9bdbd2d99f Bug 1438389 - Quietly disallow chown() in sandboxed content processes. r=gcp
Also covers fchownat() and attempts to be ready for newer archs like ARM64.

Bonus fix: extend bug 1354731 (mknod) fix to cover mknodat so this part
of the policy isn't glaringly inconsistent about "at" syscalls.

Tested locally by attaching gdb and injecting syscalls.

MozReview-Commit-ID: CCOk0jZVoG4

--HG--
extra : rebase_source : 1d0cafd9d91586eaec0233ff15b3bbb1ef7485f0
2018-02-15 16:10:00 -07:00
Jed Davis db9ae514d1 Bug 1434528 - Adjust sandbox feature detection to deal with Ubuntu guest accounts. r=gcp
Guest sessions on Ubuntu (and maybe other distributions that use
LightDM?) apply an AppArmor policy that allows CLONE_NEWUSER but doesn't
allow using any of the capabilities it grants, or even configuring the
new user namespace.

This patch causes those environments to be detected as not supporting
unprivileged user namespaces, because for all practical purposes they
don't.

MozReview-Commit-ID: HVkoBakRwaA

--HG--
extra : rebase_source : 4028eff177de30acc58f7f0c32989265dfcad9fd
2018-02-08 17:46:42 -07:00
Jed Davis f57faf8137 Bug 1436882 - Fix termination signal when clone()ing child processes. r=gcp
This fixes a mistake in bug 1401062: the termination signal was omitted,
so it's 0, and if it isn't exactly SIGCHLD, then a tracer/debugger will
receive PTRACE_EVENT_CLONE rather than PTRACE_EVENT_FORK.  This causes
GDB to see the child process as a thread instead of a separate process,
and it becomes very confused after the process calls execve().

MozReview-Commit-ID: Baf2RFHVWRU

--HG--
extra : rebase_source : 50839967fc766bb9db123fe1af99a88495f8421b
2018-02-08 17:30:03 -07:00
Jed Davis 927e70c7a5 Bug 1425274 - Filter socketpair() in content sandbox on 32-bit x86 with new-enough kernels. r=gcp
This replaces the globals for whether socket calls (and ipc(2) calls, but
we never used that) have real arguments with a parameter, which in hindsight
should have been done in bug 1273852, which is when we started handling
both socketcall(2) and separate socket calls in the same policy.  This
allows handling the two cases differently.

MozReview-Commit-ID: 1pfckmCpJlW

--HG--
extra : rebase_source : 4b8459f01e8748fea95cbcb6eeb689f01417ca5b
2018-01-29 17:36:06 -07:00
Jed Davis 4be220d5f3 Bug 1376910 - Remove SysV IPC access from Linux content sandbox when possible. r=gcp
There are a few things that use SysV IPC, which we discovered the last
time we tried to do this, which need to be accomodated:

1. The ALSA dmix plugin; if the build has ALSA support (off by default)
and if audio remoting is disabled, SysV IPC is allowed.

2. ATI/AMD's old proprietary graphics driver (fglrx), which is obsolete
and doesn't support newer hardware, but still has users; if it's
detected, SysV IPC is allowed.

3. Graphics libraries trying to use the MIT-SHM extension; this is
already turned off for other reasons (see bug 1271100), but that shim
seems to not load early enough in some cases, so it's copied into
libmozsandbox, which is preloaded before anything else in LD_PRELOAD.

Also, msgget is now blocked in all cases; the only case it was known
to be used involved ESET antivirus, which is now handled specially
(bug 1362601).  In any case, the seccomp-bpf policy has never allowed
actually *using* message queues, so creating them is not very useful.

MozReview-Commit-ID: 5bOOQcXFd9U

--HG--
extra : rebase_source : ea79c0a7e31f58f056be15b551c57dde974dfae2
2018-01-26 19:43:10 -07:00
Boris Zbarsky 12e9f78050 Bug 1435483 part 16. Switch to using dom::Exception, not nsIException, in C++ code. r=qdot
nsIException is builtinclass in idl, so whatever code we had to handle
non-dom::Exception nsIExceptions is dead code.

MozReview-Commit-ID: 6VnqDWt0041
2018-02-05 16:34:05 -05:00
Boris Zbarsky c8bd8682bf Bug 1435483 part 10. Add infallible "asyncCaller" and "caller" getters on nsIStackFrame. r=qdot
MozReview-Commit-ID: 8pdMDFHWlVt
2018-02-05 16:34:05 -05:00
Boris Zbarsky b7eaf4b6ae Bug 1435483 part 9. Add an infallible "name" getter on nsIStackFrame. r=qdot
MozReview-Commit-ID: ADxO2A8nkel
2018-02-05 16:34:05 -05:00
Boris Zbarsky 2c00c8c971 Bug 1435483 part 6. Add an infallible "lineNumber" getter on nsIStackFrame. r=qdot
MozReview-Commit-ID: 7aYg9kJhiab
2018-02-05 16:34:04 -05:00
Boris Zbarsky 02f7baafc0 Bug 1435483 part 5. Add an infallible "filename" getter on nsIStackFrame. r=qdot
MozReview-Commit-ID: D3uuehuDqOB
2018-02-05 16:34:04 -05:00
Gian-Carlo Pascutto ff91a17fb3 Bug 1386404 - Use the full tmpdir finding logic. r=jld
MozReview-Commit-ID: BDBslEZsctJ

--HG--
extra : rebase_source : 6814c3fc5183083b38bfe651f6c7e9d19965f785
extra : histedit_source : fb71245f51fefcc7c221f951316c16583239aefc%2C71d59492798b368e5d09f295f5e74bb32790c75b
2018-01-30 21:31:07 +01:00
Gian-Carlo Pascutto adc2daa77b Bug 1386404 - Whitelist the prefix used by the XPCOM leak logs. r=haik
MozReview-Commit-ID: HI68lvyJIPQ

--HG--
extra : rebase_source : b68015624aa02c911cd4361b8ea177ae585a5ef5
extra : histedit_source : ca88e3de7f3f7d76e82e259e03145d2f843d0a1b
2017-11-03 13:18:56 +01:00
Gian-Carlo Pascutto 220379341a Bug 1386404 - Only do the tmp remapping if needed. r=jld
This helps with getting the tests that are running out of /tmp
to pass, who get confused if their paths change underneath them.

It's also a bit faster.

MozReview-Commit-ID: CWtngVNhA0t

--HG--
extra : rebase_source : 1be7a99cd3640d15ddecd1c050d19d1b30e5202d
extra : histedit_source : 5787bfe610504356a04819039469083adf2ce77c
2017-10-26 18:02:10 +02:00
Gian-Carlo Pascutto 7fd8a36d1c Bug 1386404 - Intercept access to /tmp and rewrite to content process tempdir. r=jld
MozReview-Commit-ID: 2h9hw6opYof

--HG--
extra : rebase_source : 73c677be84d62ed958d07b0aca0947dd0e9448c7
extra : histedit_source : 499d483f58372b7b06a36da3fdf0ea3afc12feeb
2017-10-26 17:50:49 +02:00
Gian-Carlo Pascutto 5ce7639e7d Bug 1386404 - Enable access to the entire chrome dir from content. r=jld
This may be required if people have @import in their userContent.css, and
in any case our tests check for this.

MozReview-Commit-ID: 8uJcWiC2rli

--HG--
extra : rebase_source : a93dfc2c62d3ac35dece87e4b4596cde761de207
extra : histedit_source : 455e6a79527226f398a861a72c1cfdef2c1761df
2017-10-26 18:57:03 +02:00
Gian-Carlo Pascutto 6520179659 Bug 1386404 - Enable content-process specific tmpdir on Linux. r=jld
MozReview-Commit-ID: 6Hijq0to9MG

--HG--
extra : rebase_source : 8435b8e39d9723c52b0176a7686895185136aa6e
extra : histedit_source : 50c41172788fddead6357f1d566d0e48de8c90d6
2018-01-09 16:29:40 +01:00
Jed Davis 8b8051496a Bug 1213998 - Apply chroot() to sandboxed content processes on Linux. r=gcp
MozReview-Commit-ID: DGepECmw3pq

--HG--
extra : rebase_source : c8fe74c8fa8ea91379499f1cbfd5424dc5e9be2c
2018-01-16 19:10:51 -07:00
Jed Davis e3c2621d53 Bug 1430949 - Isolate network namespace in Linux content sandbox level 4. r=gcp
This is turned off if the X11 server is remote -- including TCP to
localhost -- because otherwise it would be blocked.  Note that ssh X
forwarding presents a TCP-only server.

The Nightly default for the force-namespace hidden pref is changed to
false, because we will now normally be using namespaces if available.

MozReview-Commit-ID: L9BbLdoLvLg

--HG--
extra : rebase_source : c737b65551deb134de18028714774e0aabb5baf5
2018-01-23 22:31:06 -07:00
Sebastian Hengst 78d2a3c1db Merge mozilla-central to mozilla-inbound 2018-01-24 14:24:05 +02:00
Jed Davis b7f2a67b3b Bug 1430756 - Remove check for unshare(), which we're no longer using. r=gcp
This also removes an assertion that was failing under external sandboxes
that deny unshare() even when it's a no-op.

MozReview-Commit-ID: KBEPJyDGU7M

--HG--
extra : rebase_source : 411a51d7707e506ca8cbe49553ada1de02f7c76b
2018-01-22 14:32:48 -07:00
Jed Davis d1f977c16c Bug 1386019 - Also remove ALSA-related sandbox rules if ALSA is remoted. r=gcp
MozReview-Commit-ID: FKebcgPi60x
2018-01-23 22:37:45 -07:00
Jed Davis 2985b5d72f Bug 1386019 - Remove PulseAudio-specific sandbox broker rules when remoting audio. r=gcp
This also moves those parts of the policy factory out of the constructor,
because the pref service isn't initialized yet at that point.

MozReview-Commit-ID: 6wbq4MHu1GJ
2018-01-23 22:37:44 -07:00
Jed Davis c498f410a3 Bug 1386019 - At sandbox level 4, remove syscalls used only by PulseAudio. r=gcp
MozReview-Commit-ID: 7YbJ8uYub7f
2018-01-23 22:37:44 -07:00
Jed Davis a739b10fb9 Bug 1126437 - Add Linux content sandbox level 4 for blocking socket APIs. r=gcp
Level 4 is now the default unless audio remoting (media.cubeb.sandbox pref) is disabled.

MozReview-Commit-ID: 4jUgiZnJImt
2018-01-23 22:35:44 -07:00
Jed Davis ec6696c724 Bug 1126437 - Reorganize content sandbox params extracted from libxul APIs. r=gcp
The end goal is to allow the seccomp-bpf policy to vary based on the
content sandbox level.

Rather than add yet another parameter to SetContentProcessSandbox to
pass down the sandbox level, this collects the values that have to be
computed in libxul into a struct, and moves the code that computes it so
it's not cluttering up ContentChild.

MozReview-Commit-ID: L0dyQwHQKhc
2018-01-23 22:35:44 -07:00
Jed Davis bba4ea8274 Bug 1401062 - Avoid doing sandbox-related things to unsandboxed child processes. r=gcp
This is a small piece of cleanup that turned out to not be strictly
necessary for the rest of this, so I've made it a separate commit.

Sandbox-related launch adjustments (currently, interposing libc
functions and providing a file descriptor for the syscall reporter)
are no longer applied to processes that won't be sandboxed.  The
MOZ_SANDBOXED environment variable communicates this to the child
process, which allows SandboxEarlyInit to be skipped in that case as
well.  The idea is that disabling sandboxing for a process type, as part
of troubleshooting, should disable everything sandbox-related.

As a side-effect, this also skips some very minor but unnecessary
overhead for NPAPI process startup.

MozReview-Commit-ID: D0KxsRIIRN

--HG--
extra : rebase_source : 89836bea80d0a171324a8e3ff15c6b8e2a163ea9
2018-01-09 19:54:56 -07:00
Jed Davis 6cc01043ce Bug 1401062 - Create Linux child processes with clone() for namespace/chroot sandboxing. r=gcp
Namespace isolation is now handled by using clone() at process creation
time, rather than calling unshare.

pthread_atfork will no longer apply to sandboxed child processes.
The two significant uses of it in Firefox currently are to (1) make
malloc work post-fork, which we already avoid depending on in IPC and
sandboxing, and (2) block SIGPROF while forking, which is taken care of;
see SandboxFork::Fork for details.  Note that if we need pthread_atfork
in the future it could be emulated by symbol interposition.

clone() is called via glibc's wrapper, for increased compatibility vs.
invoking the syscall directly, using longjmp to recover the syscall's
fork-like semantics the same way Chromium does; see comments for details.

The chroot helper is reimplemented; the general approach is similar,
but instead of a thread it's a process cloned with CLONE_FS (so the
filesystem root is shared) from the child process before it calls
exec, so that it still holds CAP_SYS_CHROOT in the newly created user
namespace.  This does mean that it will retain a CoW copy of the
parent's address space until the child starts sandboxing, but that is a
relatively short period of time, so the memory overhead should be small
and short-lived.

The chrooting now happens *after* the seccomp-bpf policy is applied;
previously this wasn't possible because the chroot thread would have
become seccomp-restricted and unable to chroot.  This fixes a potential
race condition where a thread could try to access the filesystem after
chrooting but before having its syscalls intercepted for brokering,
causing spurious failure.  (This failure mode hasn't been observed in
practice, but we may not be looking for it.)

This adds a hidden bool pref, security.sandbox.content.force-namespace,
which unshares the user namespace (if possible) even if no sandboxing
requires it.  It defaults to true on Nightly and false otherwise, to
get test coverage; the default will change to false once we're using
namespaces by default with content.

MozReview-Commit-ID: JhCXF9EgOt6

--HG--
rename : security/sandbox/linux/LinuxCapabilities.cpp => security/sandbox/linux/launch/LinuxCapabilities.cpp
rename : security/sandbox/linux/LinuxCapabilities.h => security/sandbox/linux/launch/LinuxCapabilities.h
extra : rebase_source : f37acacd4f79b0d6df0bcb9d1d5ceb4b9c5e6371
2017-10-06 17:16:41 -06:00
Jed Davis 5161a86c36 Bug 1401062 - Delete the old namespace/chroot code and reorganize sandbox init. r=gcp
This is mostly deletion, except for SandboxEarlyInit.  The unshare()
parts are going away, and the "unexpected threads" workaround can go away
along with them, but the signal broadcast setup still needs to happen
early so we can prevent blocking the signal.

So, SandboxEarlyInit's contract changes slightly from "call before
any other threads exist" to "before any threads that might block all
signals", and everything that can be deferred to immedately before
sandbox startup is.  As a result, some getenv()s change to PR_GetEnv
because there can be threads, and there is now an NSPR dependency.
(This may mean that mozglue can no longer interpose symbols in NSPR,
because libmozsandbox is preloaded, but I don't think we're doing that.)

MozReview-Commit-ID: 7e9u0qBNOqn

--HG--
extra : rebase_source : 1a8442f7e0e26231ecf01b19078433d1b5b2763c
2017-08-31 20:38:25 -06:00
Harald van Dijk 2877a35271 Bug 1430274 - Define MOZ_ALSA for more source files. r=jld 2018-01-18 15:18:37 -07:00
Csoregi Natalia d07dee65a2 Backed out 6 changesets (bug 1386404) for failing /webdriver/test/ tests on Linux. r=backout on a CLOSED TREE
Backed out changeset be1441859e8b (bug 1386404)
Backed out changeset 8dca7ef74c4a (bug 1386404)
Backed out changeset b7ca6ae185f2 (bug 1386404)
Backed out changeset 2c007d385ce4 (bug 1386404)
Backed out changeset fbe717b9a664 (bug 1386404)
Backed out changeset 14f1fbe5263a (bug 1386404)
2018-01-10 14:08:51 +02:00