Opened 3 months ago

Last modified 2 weeks ago

#32380 new defect

Get current Tor Browser code ready for RLBox

Reported by: gk Owned by: tbb-team
Priority: Medium Milestone:
Component: Applications/Tor Browser Version:
Severity: Normal Keywords: tbb-security, GeorgKoppen202001
Cc: Actual Points:
Parent ID: #32379 Points:
Reviewer: Sponsor:

Description

RLBox is written in C++17. We likely hit build issues in an ESR 68 environment with a C++17 requirement. There is the option to adapt RLBox to C++11 code but we should not follow that path but backport build related patches instead.

https://bugzilla.mozilla.org/show_bug.cgi?id=1560664 is a ticket to start.

If that turns out to be too tricky to require C++17 for the whole codebase we can think about enabling it just for the part we want to start sandboxing.

Child Tickets

Change History (3)

comment:1 Changed 2 months ago by gk

Okay, with bug_30380_v3 (https://gitweb.torproject.org/user/gk/tor-browser.git/log/?h=bug_32380_v3) I get the following build issue:

 1:06.10 /var/tmp/build/firefox-301a46905ed1/gfx/thebes/gfxFcPlatformFontList.cpp:495:18: error: value of type 'tainted_opaque<gr_face *, RLBoxThebes_T_Sbx>' (aka 'tainted_opaque<gr_face *, rlbox::rlbox_noop_sandbox>') is not contextually convertible to 'bool'
 1:06.10   if (mHBFace || mGrFace) {
 1:06.10                  ^~~~~~~
 1:06.10 /var/tmp/build/firefox-301a46905ed1/gfx/thebes/gfxFcPlatformFontList.cpp:495:15: error: invalid operands to binary expression ('hb_face_t *' and 'tainted_opaque<gr_face *, RLBoxThebes_T_Sbx>' (aka 'tainted_opaque<gr_face *, rlbox::rlbox_noop_sandbox>'))
 1:06.10   if (mHBFace || mGrFace) {
 1:06.10       ~~~~~~~ ^  ~~~~~~~
 1:06.10 /var/tmp/build/firefox-301a46905ed1/obj-x86_64-pc-linux-gnu/dist/include/mozilla/rlbox/rlbox.hpp:793:1: note: candidate template ignored: could not match 'tainted_base_impl' against 'tainted_opaque'
 1:06.11 BooleanBinaryOpWrappedRhs(||);
 1:06.11 ^
 1:06.11 /var/tmp/build/firefox-301a46905ed1/obj-x86_64-pc-linux-gnu/dist/include/mozilla/rlbox/rlbox.hpp:747:25: note: expanded from macro 'BooleanBinaryOpWrappedRhs'
 1:06.11   inline constexpr auto operator opSymbol(                                     \
 1:06.11                         ^
 1:06.11 /var/tmp/build/firefox-301a46905ed1/obj-x86_64-pc-linux-gnu/dist/include/mozilla/rlbox/rlbox.hpp:793:1: note: candidate template ignored: could not match 'tainted_base_impl' against 'tainted_opaque'
 1:06.11 /var/tmp/build/firefox-301a46905ed1/obj-x86_64-pc-linux-gnu/dist/include/mozilla/rlbox/rlbox.hpp:765:25: note: expanded from macro 'BooleanBinaryOpWrappedRhs'
 1:06.11   inline constexpr auto operator opSymbol(                                     \
 1:06.11                         ^
 1:06.86 2 errors generated.
 1:06.88 make[1]: *** [gfxFcPlatformFontList.o] Error 1

Our toolchain is fine in that it can compile the respective code from the canonical try push. It seems we have the problem that the patch for https://bugzilla.mozilla.org/show_bug.cgi?id=1547063 did not land on ESR 68.

comment:2 Changed 6 weeks ago by gk

Keywords: GeorgKoppen201912 added; GeorgKoppen201911 removed

Moving my tickets to December.

comment:3 Changed 2 weeks ago by gk

Keywords: GeorgKoppen202001 added; GeorgKoppen201912 removed

No December anymore.

Note: See TracTickets for help on using tickets.