Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(93)

Issue 7714018: Give plug-in processes an executable heap and disable PIE/ASLR for Native (Closed)

Created:
9 years, 4 months ago by Mark Mentovai
Modified:
9 years, 4 months ago
Reviewers:
TVL
CC:
chromium-reviews, kkania, tfarina, jam, apatrick_chromium, joi+watch-content_chromium.org, darin-cc_chromium.org, Paweł Hajdan Jr., pam+watch_chromium.org, native-client-reviews_googlegroups.com
Visibility:
Public.

Description

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

Patch Set 1 #

Patch Set 2 : '' #

Patch Set 3 : '' #

Patch Set 4 : '' #

Patch Set 5 : '' #

Patch Set 6 : '' #

Patch Set 7 : '' #

Total comments: 3

Patch Set 8 : '' #

Patch Set 9 : '' #

Patch Set 10 : '' #

Patch Set 11 : '' #

Patch Set 12 : '' #

Patch Set 13 : '' #

Patch Set 14 : '' #

Patch Set 15 : '' #

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

Messages

Total messages: 5 (0 generated)
Mark Mentovai
9 years, 4 months ago (2011-08-23 22:39:35 UTC) #1
TVL
what about breakpad symbols for the newly named binaries? Do we need to just clone ...
9 years, 4 months ago (2011-08-24 01:21:33 UTC) #2
Mark Mentovai
> what about breakpad symbols for the newly named binaries? Do we need to just ...
9 years, 4 months ago (2011-08-24 01:28:15 UTC) #3
TVL
lgtm. nice job.
9 years, 4 months ago (2011-08-24 01:36:08 UTC) #4
TVL
9 years, 4 months ago (2011-08-24 02:06:05 UTC) #5
main changes lgtm

Powered by Google App Engine
This is Rietveld 408576698