Commit Graph

27294 Commits

Author SHA1 Message Date
Peter Collingbourne c2d3e67a77 Merge "bionic: Allocate a shadow call stack for each thread." 2018-11-13 18:56:58 +00:00
Peter Collingbourne da772e2113 bionic: Allocate a shadow call stack for each thread.
Instead of allocating the stack within a 16MB guard region as we
were doing before, just allocate the stack on its own. This isn't
as secure as with the guard region (since it means that an attacker
who can read the pthread_internal_t can determine the address of the
SCS), but it will at least allow us to discover more blockers until
a solution to b/118642754 is decided on.

Bug: 112907825
Bug: 118642754
Change-Id: Ibe5dffbad1b4700eaa0e24177eea792e7c329a61
2018-11-12 20:04:40 -08:00
Peter Collingbourne b87e85aac3 Merge "bionic: Add shadow call stack guard region field to pthread_internal_t." 2018-11-12 22:50:24 +00:00
Peter Collingbourne 5d427bcb08 bionic: Add shadow call stack guard region field to pthread_internal_t.
Landing this change separately to the change that implements SCS
because it needs to land at the same time as an internal change. This
will simplify the situation in case SCS needs to be reverted again.

Change-Id: Ibe18750829665b6dcf6e36628a5e5bbdd1a0dd4f
Merged-In: Ibe18750829665b6dcf6e36628a5e5bbdd1a0dd4f
2018-11-12 13:42:28 -08:00
Treehugger Robot e9bd18ac0c Merge "Separate libc_common to two targets" 2018-11-12 21:31:11 +00:00
Ryan Prichard f521c19e13 Merge "Publish the current draft of my ELF TLS doc" 2018-11-12 20:48:37 +00:00
Haibo Huang f71edfad1c Separate libc_common to two targets
Adds libc_common_static and libc_common_shared targets. So that static
and shared objects can use different libraries.

In following changes I'll add dynamic dispatch code to
libc_common_shared.

Test: compile and run bionic unit test.
Change-Id: I056742fdf8af76ed7deb274c515951656b176fcb
2018-11-12 10:10:31 -08:00
Treehugger Robot 40538268d4 Merge "Add lp32 and lp64 shorthands to SYSCALLS.TXT." 2018-11-10 00:09:21 +00:00
Ryan Prichard 9491c54619 Publish the current draft of my ELF TLS doc
I have a script that converts the internal Google Doc to this markdown
file.

Bug: http://b/78026329
Test: review document
Change-Id: I16cfa60f1e480f859eb79cb0e5f0c519f5622cfd
2018-11-09 15:24:16 -08:00
Elliott Hughes 8251d4419f Add lp32 and lp64 shorthands to SYSCALLS.TXT.
Bug: N/A
Test: updating the generated stubs is a no-op
Change-Id: I7f6f9bcfd8c054f0a2d7e5f488eacb88cefb8d15
2018-11-09 13:57:34 -08:00
Ken Chen b9de32f6f0 Merge "Free memory when it is no more used" 2018-11-09 03:28:44 +00:00
Ken Chen f945716bf9 Free memory when it is no more used
Memory leak happen when Android data framework updates identical DNS
information to netd.

(cherrypick of c466fe95dc641d879683700aea4233ffd42bc762.)

Bug: 115595601
Test: netd_unit_test, netd_integration_test
Change-Id: Idcc0956729286563603f482258f488a1ccd75e6a
2018-11-08 13:29:13 -08:00
Josh Gao 8fd93e6ea5 Merge "Increase the size of the signal stack on 64-bit." 2018-11-08 21:24:51 +00:00
Josh Gao f90687c4ec Increase the size of the signal stack on 64-bit.
The signal stack is sufficiently large for a single invocation of the
signal handler, but in cases where the signal handler needs to recurse,
(e.g. if our address space is limited by RLIMIT_AS), it's too small for
us to get to the part where we recognize that we've recursed and bail
out.

Bug: http://b/118772392
Test: /data/nativetest64/debuggerd_test/debuggerd_test64 --gtest_filter=CrasherTest.seccomp_crash_oom
Change-Id: Ic7a2cf8b01b3f7ea7f4a2318a3ec22a0c3649da6
2018-11-08 21:24:31 +00:00
Elliott Hughes bf925b0580 Merge "Remove obsolete workaround." 2018-11-08 20:09:49 +00:00
Yi Kong d495e0b777 Merge "Don't build bionic-unit-tests-static with libcrt_builtins" 2018-11-08 18:23:56 +00:00
Neil Fuller 10265a8cbe Merge "Finalize the name of the apex package" 2018-11-08 08:18:59 +00:00
Yi Kong b011d59a7f Don't build bionic-unit-tests-static with libcrt_builtins
libcrt_builtins does not work with libm, which is statically linked in
bionic-unit-tests-static. Opt it out of libcrt_builtins for now.

Bug: 119207651
Bug: 117167374
Test: run bionic-unit-test-static
Change-Id: I20067c9841beb9de2b73342847aaa945dbadbff8
2018-11-08 05:33:15 +00:00
Chih-hung Hsieh b3fe0136d8 Merge "Revert "Disable lld, libc_malloc_debug failed to boot."" 2018-11-08 04:59:14 +00:00
Chih-hung Hsieh bbd465a230 Merge "Revert "Disable lld, failed to link bionic/linker."" 2018-11-08 04:58:14 +00:00
Elliott Hughes 52d7749335 Merge "ART isn't using the ART-specific linker features any more." 2018-11-08 03:09:53 +00:00
Christopher Ferris 6689b4f258 Merge "Add a force fail for non-bionic xfail test." 2018-11-08 03:01:34 +00:00
Christopher Ferris aced2b25e6 Merge "Add smoke tests for mallopt options." 2018-11-08 03:01:13 +00:00
Christopher Ferris af1b8ddaa9 Add smoke tests for mallopt options.
Test: Unit tests pass.
Change-Id: If213f4338078011ff12996c1b2a6f6858b51d824
2018-11-07 17:11:42 -08:00
Chih-hung Hsieh 56794421fc Revert "Disable lld, libc_malloc_debug failed to boot."
This reverts commit 0e87940961.

Reason for revert: This should have been fixed.
Bug: 78118944

Change-Id: I796ff2420ec3682dd54a059175a8428868b75c23
2018-11-07 23:49:37 +00:00
Christopher Ferris e691069366 Merge "Fix test failures." 2018-11-07 22:48:44 +00:00
Christopher Ferris 01db9bde05 Add a force fail for non-bionic xfail test.
Test: xfail test passes on host.
Change-Id: I6c4ddd3f3dc5541b126d9dd31b1fcff9d34819e6
2018-11-07 14:39:43 -08:00
Christopher Ferris 9ac0cd5f85 Fix test failures.
- Fix the help output for new benchmarks help output.
- Fix incorrect regex for sanitizing output.

Test: Ran unit tests and they pass.
Change-Id: I227eef3ce8c4ce639321e5ab8a57d0877063ede1
2018-11-07 14:30:55 -08:00
Logan Chien 77a5f95405 Merge "versioner: Port to clang-r344140" 2018-11-07 22:02:50 +00:00
Chih-hung Hsieh 34d1f2ddf2 Revert "Disable lld, failed to link bionic/linker."
This reverts commit 73de62e461.

Reason for revert: bug was fixed upstream and included into AOSP lld
Bug: 78115263
Test: make checkbuild

Change-Id: Ib9e4af1efdcdb547c7bd65cce4ce48d7f09ed217
2018-11-07 21:55:18 +00:00
Treehugger Robot 5e099173da Merge "Revert "Do not use clang lld with -z,global"" 2018-11-07 21:43:24 +00:00
Evgenii Stepanov 2b94f124df Merge changes I6ba4b46a,Ic54579e3
* changes:
  Disable a few bionic tests under HWASan.
  Remove timer_delete_multiple test.
2018-11-07 21:35:53 +00:00
Neil Fuller fd522d0132 Finalize the name of the apex package
The package name in the manifest.json is changing to
remove apex so the hardcoded path must change.

Bug: 119026403
Test: build
Change-Id: I906b595a1325b40f8af8c37d7d08cd543c988cc8
2018-11-07 15:42:43 +00:00
Logan Chien 6c148d17e5 versioner: Port to clang-r344140
This commit updates bionic versioner to use clang-r344140.  To be
specific, this commit renames `clang::vfs::FileSystem` to
`llvm::vfs::FileSystem` and updates the headers.

Bug: 111759196
Test: bionic/tools/versioner/run_tests.py
Change-Id: I304ecae79da5a1638ae755dac92b52e314019cf1
2018-11-07 10:35:38 +08:00
Evgenii Stepanov acd6f4f9f5 Disable a few bionic tests under HWASan.
* HWASan report invalid use of the allocator api (like alignment not
being power of two, or allocation size too large) in a way tests do not
expect.
* Code in .preinit_array runs before HWASan shadow is initialized and
needs to be excluded from instrumentation.
* It looks that mm system calls (mmap/mprotect/etc) will not allow
tagged pointers. In fact, the use of mprotect on malloc()ed memory is
doubtful - one can imagine some kind of speculative load from such
memory, as compiler knows that it is addressable.

Bug: 114279110
Test: bionic-unit-tests with hwasan

Change-Id: I6ba4b46a0d554de77c923ad134cf156ce4ddba1b
2018-11-06 16:59:25 -08:00
Evgenii Stepanov 96bd339c51 Remove timer_delete_multiple test.
According to posix, this test invokes undefined behavior by deleting
a timer twice.

According to hwasan, the second call to timer_delete loads
kernel_timer_id from previously deallocated PosixTimer (i.e.
heap-use-after-free).

Bug: 114279110
Test: bionic-unit-tests with hwasan

Change-Id: Ic54579e3bb41d3f38282b8822dafaba51efd003a
2018-11-06 16:59:21 -08:00
Chih-hung Hsieh 08a0cd082f Revert "Do not use clang lld with -z,global"
This reverts commit 8e462d411a.

Reason for revert: this lld bug has been fixed upstream and in AOSP prebuilts

Bug: 80109858
Change-Id: Ied600324201e1a014a1d4e6742767e2ddd94999a
2018-11-07 00:12:56 +00:00
Elliott Hughes eadf50601b Remove obsolete workaround.
Bug: b/37423073
Test: builds
Change-Id: Ib0ad58abc7303967a80bb933501cc1247bb36385
2018-11-06 11:17:34 -08:00
Elliott Hughes 8178c417f6 ART isn't using the ART-specific linker features any more.
Bug: N/A
Test: ran tests
Change-Id: Ide3c295035687019608a2c4716a4a21cb889d121
2018-11-06 11:15:17 -08:00
Logan Chien 0c39bd468d Merge "Add bionic/libc/include to exported_include_dirs" 2018-11-05 08:20:42 +00:00
Neil Fuller 6d1c5cab94 Merge "Changes to support loading tz data from APEX" 2018-11-02 22:34:50 +00:00
Christopher Ferris 9ffd39cdea Merge "Add test for malloc_iterate." 2018-11-02 15:20:54 +00:00
Logan Chien 833cbe4b1c Add bionic/libc/include to exported_include_dirs
This commit adds "include" (full path: "bionic/libc/include") to
exported_include_dirs for libc.  Without this change,
header-abi-checker will strip all functions from ABI dumps.

Bug: 117963950
Test: libc.so.lsdump has a non-empty functions array
Change-Id: I192a4ec0251f1320ced56c6201818076ebd2a2da
2018-11-02 13:21:03 +08:00
Nucca Chen 38b8255866 Merge "getnameinfo: Don't add flag NI_NUMERICHOST for well-known prefix address" 2018-11-02 01:59:20 +00:00
nuccachen 8d65a81fb6 getnameinfo: Don't add flag NI_NUMERICHOST for well-known prefix address
Currently, getnameinfo() will never issue a reverse DNS lookup if the first
byte of the IPv6 address is 0x00. This means it is not possible to do a
reverse DNS lookup for a NAT64 address if the NAT64 prefix is the well-known
prefix. Make this possible by treating the well-known prefix specially. This
is not needed for unicast NAT64 prefixes because they do not start with 0x00.

Bug: 78545619
Test: netd_{unit,integration}_test pass
Test: bionic-unit-tests --gtest_filter='net*' pass
Change-Id: I176d30dcf411a5ffe1eec110db99cd73b48e956f
2018-11-01 16:40:34 +08:00
Logan Chien e2833f27c1 Merge "versioner: Port to clang-r339409b" 2018-11-01 05:10:36 +00:00
Josh Gao 6f3a56bb18 Merge "Revert "bionic: Allocate a shadow call stack for each thread."" 2018-11-01 01:32:00 +00:00
Treehugger Robot 5c7bece8ca Merge "ld.config.txt for APEX" 2018-10-31 14:04:33 +00:00
Logan Chien c16d65d70e versioner: Port to clang-r339409b
This commit ports versions to clang-r339409b and utilizes
`libclang-cxx.so`.

Bug: 113263746
Test: ./bionic/tools/versioner/run_tests.py
Change-Id: Ib104a6c8c2c69df51cfa2760dbca125f4cfa054b
2018-10-31 14:53:30 +08:00
Jiyong Park 358334145e ld.config.txt for APEX
When executing an executable in an APEX (i.e., /apex/<name>/bin),
ld.config.txt file is read from the same APEX, not from /system/etc.

Bug: 115787633
Test: m apex.test; adb push ...apex.test.apex /data/apex; adb reboot
Test: adb root; adb shell /apex/com.android.example.apex/bin/dex2oat
is runnable.

Change-Id: I6400251f99d24f2379dbaf655ecd84da02490617
2018-10-31 12:21:02 +09:00