diff options
author | markus@chromium.org <markus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-21 23:04:11 +0000 |
---|---|---|
committer | markus@chromium.org <markus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-21 23:04:11 +0000 |
commit | 6b603d9092891f9b3e2e7b54a7000e3595252f84 (patch) | |
tree | 5e5bfc3831a959964e5585ec3a32816a5d64243d /sandbox/src/dep_test.cc | |
parent | ebc3c8bdb77ce5926e0bb6961851d9e3546f7274 (diff) | |
download | chromium_src-6b603d9092891f9b3e2e7b54a7000e3595252f84.zip chromium_src-6b603d9092891f9b3e2e7b54a7000e3595252f84.tar.gz chromium_src-6b603d9092891f9b3e2e7b54a7000e3595252f84.tar.bz2 |
- found all symbols that we directly access from assembly and marked them as internal. This ensures
that the linker won't complain about IP relative addressing for symbols that could be overridden at
run-time.
- avoided using "g" register constraints, as there has been a report of some versions of GCC
erroneously generating code that is no longer position independant when this constraint is used.
- removed the old code that fork()'s a child to try to extend mappings of libraries at run-time. This
code always was somewhat fragile and caused a measurable performance penalty when the sandbox was
started. Replaced with code that remapped just the very first page. This can actually be done in a
running process without disrupting the use of the libraries.
- added a special case for the instrumentation code allowing it to deal with jumps between the VDSO
and VSyscalls even if the instructions would normally not be eligible for interception as they are IP
relative. After making this change, we can again find sufficiently large code snippets to rewrite them
successfully. This is only a concern on x86_64.
- fixed a bug that would erroneously look for IP relative addressing on x86_32. It doesn't exist for
that architecture.
TEST=none
BUG=http://code.google.com/p/chromium/issues/detail?id=18337
Review URL: http://codereview.chromium.org/306036
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29726 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sandbox/src/dep_test.cc')
0 files changed, 0 insertions, 0 deletions