|
Give plug-in processes an executable heap and disable PIE/ASLR for Native
Client loader processes.
Some plug-ins depend on having an executable heap. They write code to data
pages and attempt to execute it without calling mprotect to mark this code
as executable.
Native Client needs to allocate a contiguous 1GB of address space. ASLR may
interfere with there being a "hole" this large in the address space by the
time NaCl makes its request.
Non-executable heaps are only available in 10.7 and later for 32-bit
processes.
PIE/ASLR was formerly disabled for all processes other than the browser
process. This change reenables it for all processes other than the NaCl
loader. PIE/ASLR is available on 10.5 and later, although the implementation
is stronger in 10.7 than in earlier releases.
This change results in two new helpers in addition to the existing
Chromium Helper.app: Chromium Helper EH.app (for executable heaps) and
Chromium Helper NP.app (for no PIE). libplugin_carbon_interpose.dylib moves
out of the helper .app and directly into the versioned directory. The
InfoPlist.strings have been removed from the helper app, but empty .lproj
directories remain.
BUG= 90221, 93551
TEST=everything
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=97984
Total comments: 3
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+569 lines, -380 lines) |
Patch |
|
M |
build/common.gypi
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
1 chunk |
+12 lines, -8 lines |
0 comments
|
Download
|
|
A + |
build/mac/change_mach_o_flags.py
|
View
|
|
6 chunks |
+61 lines, -18 lines |
0 comments
|
Download
|
|
A + |
build/mac/change_mach_o_flags_from_xcode.sh
|
View
|
1
2
3
8
|
1 chunk |
+4 lines, -5 lines |
0 comments
|
Download
|
|
D |
build/mac/make_heap_non_executable.py
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
1 chunk |
+0 lines, -231 lines |
0 comments
|
Download
|
|
D |
build/mac/make_heap_non_executable_from_xcode.sh
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
1 chunk |
+0 lines, -15 lines |
0 comments
|
Download
|
|
M |
chrome/app/chrome_main.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
1 chunk |
+29 lines, -3 lines |
0 comments
|
Download
|
|
M |
chrome/app/helper-Info.plist
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
1 chunk |
+0 lines, -2 lines |
0 comments
|
Download
|
|
M |
chrome/browser/automation/testing_automation_provider.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
2 chunks |
+8 lines, -2 lines |
0 comments
|
Download
|
|
M |
chrome/browser/importer/profile_import_process_host.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
1 chunk |
+6 lines, -1 line |
0 comments
|
Download
|
|
M |
chrome/browser/memory_details_mac.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
1 chunk |
+16 lines, -3 lines |
0 comments
|
Download
|
|
M |
chrome/browser/nacl_host/nacl_process_host.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
1 chunk |
+16 lines, -1 line |
0 comments
|
Download
|
|
M |
chrome/browser/service/service_process_control.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
1 chunk |
+8 lines, -1 line |
0 comments
|
Download
|
|
M |
chrome/chrome.gyp
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
3 chunks |
+12 lines, -57 lines |
0 comments
|
Download
|
|
M |
chrome/chrome_exe.gypi
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
|
3 chunks |
+34 lines, -0 lines |
0 comments
|
Download
|
|
M |
chrome/common/chrome_constants.h
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
1 chunk |
+11 lines, -1 line |
0 comments
|
Download
|
|
M |
chrome/common/chrome_constants.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
1 chunk |
+6 lines, -0 lines |
0 comments
|
Download
|
|
M |
chrome/common/service_process_util.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
chrome/installer/mac/sign_app.sh.in
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
2 chunks |
+6 lines, -2 lines |
0 comments
|
Download
|
|
M |
chrome/installer/mac/sign_versioned_dir.sh.in
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
1 chunk |
+8 lines, -0 lines |
0 comments
|
Download
|
|
M |
chrome/service/service_utility_process_host.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
1 chunk |
+6 lines, -1 line |
0 comments
|
Download
|
|
M |
chrome/test/base/chrome_process_util.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
3 chunks |
+36 lines, -10 lines |
0 comments
|
Download
|
|
|
chrome/tools/build/mac/make_locale_dirs.sh
|
View
|
|
1 chunk |
+39 lines, -0 lines |
0 comments
|
Download
|
|
A |
chrome/tools/build/mac/make_more_helpers.sh
|
View
|
8
|
1 chunk |
+89 lines, -0 lines |
0 comments
|
Download
|
|
M |
content/browser/gpu/gpu_process_host.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
1 chunk |
+8 lines, -1 line |
0 comments
|
Download
|
|
M |
content/browser/plugin_process_host.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
1 chunk |
+13 lines, -1 line |
0 comments
|
Download
|
|
M |
content/browser/ppapi_broker_process_host.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
1 chunk |
+8 lines, -1 line |
0 comments
|
Download
|
|
M |
content/browser/renderer_host/browser_render_process_host.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
1 chunk |
+8 lines, -2 lines |
0 comments
|
Download
|
|
M |
content/browser/utility_process_host.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
1 chunk |
+6 lines, -1 line |
0 comments
|
Download
|
|
M |
content/browser/worker_host/worker_process_host.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
1 chunk |
+7 lines, -1 line |
0 comments
|
Download
|
|
M |
content/common/child_process_host.h
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
2 chunks |
+40 lines, -8 lines |
0 comments
|
Download
|
|
M |
content/common/child_process_host.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
4 chunks |
+69 lines, -2 lines |
0 comments
|
Download
|
|
M |
content/common/plugin_carbon_interpose_constants_mac.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
Total messages: 5 (0 generated)
|