Commit graph

25231 commits

Author SHA1 Message Date
Jeremy Compostella
611ad621c6 Revert "Add 64-bit slm optimized strlcpy and srlcat."
This reverts commit 2e7145c048.

When src is at the end page, the sse2 strlcpy SSE2 optimized version
can issue a movdqu instruction that can cross the page boundary.  If
the next page is not allocated to that process, it leads to
segmentation fault.  This is a rare but has be caught multiple times
during robustness testing.

We isolated a way to reproduce that issue outside of an Android device
and we have been able to resolve this particular case.  However, we
ran some additional compliance and robustness tests and found several
other similar page crossing issues with this implementation.

In conclusion, this optimization needs to be re-written from scratch
because its design is at cause.  In the meantime, it is better to
remove it.

Change-Id:  If90450de430ba9b7cd9282a422783beabd701f3d
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
2018-04-12 14:00:43 -07:00
Treehugger Robot
48227e6602 Merge "spawn.signal_stress: reap spawned children on exit" 2018-04-10 02:39:15 +00:00
Ryan Prichard
344969c849 spawn.signal_stress: reap spawned children on exit
Test: adb shell \
  /data/nativetest64/bionic-unit-tests-static/bionic-unit-tests-static \
  --gtest_filter=spawn.signal_stress
Bug: b/77824306
Change-Id: I970d1a4d0f8ac9621e676f32f838fc2f638d9750
2018-04-09 16:58:20 -07:00
Treehugger Robot
df0a2d237d Merge "Point to the NDK wrap.sh docs." 2018-04-07 02:51:38 +00:00
Treehugger Robot
6062ec2826 Merge "Stop claiming that malloc debug is only usable on rooted devices." 2018-04-06 23:57:28 +00:00
Elliott Hughes
5ad142157d Point to the NDK wrap.sh docs.
Bug: N/A
Test: N/A
Change-Id: Ic4c12a2ae43a6d733a23dcd2c901c2b6478eee97
2018-04-06 15:13:14 -07:00
Elliott Hughes
7dc7d2b7f2 Stop claiming that malloc debug is only usable on rooted devices.
Bug: N/A
Test: N/A
Change-Id: Ie9d753e7c2b6cc06e1c8e562970a000858f1072e
2018-04-06 14:44:49 -07:00
Tom Cherry
d238817037 Merge "Do not check user/group names in pwd/grp tests for OEM uid/gids" 2018-04-05 16:06:37 +00:00
Treehugger Robot
3ffe171d9a Merge "Make sys_ptrace_test.cpp Yama LSM-aware" 2018-04-05 02:13:16 +00:00
Tom Cherry
b4c25c882e Do not check user/group names in pwd/grp tests for OEM uid/gids
Vendors that use config.fs will have their own uniquely named
user/group names for uids/gids that fall in the OEM ranges.  We
continue to allow lookup via oem_## for these values, however the
returned structs will always include the name from config.fs, so we do
not check it for anything in the tests.

Bug: 77549259
Test: bionic unit tests with uid 5000 as AID_CRAS
Change-Id: I27fc1fdd0e22063fea82b4c9d2a6fb8b865c5d7b
2018-04-04 15:02:55 -07:00
Luis Hector Chavez
7300d83b2e Make sys_ptrace_test.cpp Yama LSM-aware
This change enables the tracer process to be able to call ptrace(2) on
the worker process, which is does not have a direct-ancestor dependency.

Bug: 77146512
Test: adb shell \
      /data/nativetest{,64}/bionic-unit-tests{,-static}/bionic-unit-tests-{,-static} \
      --gtest_filter='spawn*'  # aosp_sailfish and Chrome OS
Test: cts-tradefed run singleCommand cts --skip-preconditions \
      -m CtsBionicTestCases --test 'PtraceResumptionTest*'  # aosp_sailfish
                                                            # and Chrome OS
Change-Id: I9e41b3ddde64c0623ba9299cede9d5b2001c8e30
2018-04-04 14:10:57 -07:00
Elliott Hughes
b7fd08cad7 Merge "Support getting/setting API level in static binaries." 2018-04-04 15:24:46 +00:00
Treehugger Robot
bf0f6d0b5a Merge "Fix race in spawn.signal_stress test" 2018-04-04 12:57:40 +00:00
Treehugger Robot
d24dc1b354 Merge "Fix race in ld.config.txt tests" 2018-04-04 10:10:31 +00:00
Ryan Prichard
a1bc826c37 Fix race in spawn.signal_stress test
The default behavior for a real-time signal is to terminate the process.
If the child we fork sends a SIGRTMIN signal before we've set up the
ScopedSignalHandler for it, then the parent is terminated.

Test: adb shell /data/nativetest64/bionic-unit-tests-static/bionic-unit-tests-static --gtest_filter=spawn.signal_stress --gtest_repeat=1000
Bug: b/77554047
Change-Id: Ib44cbea8ccf506644405d8f426d9ad24e77cfa33
2018-04-03 21:57:24 -07:00
Ryan Prichard
6c3f97d236 Fix race in ld.config.txt tests
The tests can run in parallel, and if they do, one test can truncate
ld.config.txt while another test is reading it (via the loader). Fix the
issue by using a TemporaryFile as the LD_CONFIG_FILE.

Test: adb shell /data/nativetest64/bionic-unit-tests/bionic-unit-tests  --gtest_filter=dl.exec_with_ld_config_file:dl.exec_with_ld_config_file_with_ld_preload:dl.disable_ld_config_file --gtest_repeat=1000
Bug: b/77555708
Change-Id: I9763caa076ece30d1a0eb9c8892a310ac51543b6
2018-04-03 21:57:16 -07:00
Elliott Hughes
46a943c833 Support getting/setting API level in static binaries.
Bug: http://b/27917272
Test: fixes static semaphore.sem_wait_no_EINTR_in_sdk_less_equal_than_23 test
Change-Id: Ifeeff20772ff0308aab9417d48671b604a3e9665
2018-04-03 21:53:29 -07:00
Treehugger Robot
68ce672b5f Merge "Break libdl.so and ld-android.so's dependency on libc.so." 2018-04-04 04:28:52 +00:00
Christopher Ferris
4cdde64728 Merge "Refactor malloc debug." 2018-04-03 17:36:47 +00:00
Christopher Ferris
4da2503d70 Refactor malloc debug.
Changes
- Refactor the code so that only guards require creating a special header
  for every pointer allocated.
- Store only a single copy of every backtrace. This saves memory so that
  turning on the backtrace option doesn't result in 10X memory usage.
- Added new option track_allocs that only verifies pointers are valid for
  free/malloc_usable_size/realloc.
- Remove suffix from test names.
- Add the TRACK_ALLOCS options to all guard options.
- Add new option verify_pointers that is a lightweight way to verify
  pointers that are passed to allocation routines.
- Do auto-formatting of the code.
- Updated documentation for all of these changes.

Bug: 74361929

Test: Ran unit tests.
Test: Ran libmemunreachable unit tests.
Test: Ran an app with backtrace enabled.

Change-Id: I3246c48ae4f9811f64622d90d0a9b4d9d818702c
2018-04-02 18:59:23 -07:00
Treehugger Robot
72d60a95fa Merge "Revert "Revert system seccomp filter changes"" 2018-04-02 23:43:50 +00:00
Treehugger Robot
c0db96dadf Merge "Fix build failure with dlext_testzip Bionic tests" 2018-04-02 23:24:24 +00:00
Treehugger Robot
47a2f48d8a Merge "Pad queries when EDNS0 is enabled." 2018-04-02 19:25:53 +00:00
Ben Schwartz
27dd915147 Pad queries when EDNS0 is enabled.
Behavior is compliant with
https://tools.ietf.org/html/draft-ietf-dprive-padding-policy-04

EDNS0 is only enabled when the netcontext requests it, i.e. in DNS-over-TLS
mode.

Bug: 69623036
Bug: 64133961
Test: Wireshark verified. Integration tests echo padding and pass.
Change-Id: I5ef600e02a572d281441e890cc981614f150629b
2018-04-02 05:28:16 +00:00
Ryan Prichard
470b66644b Break libdl.so and ld-android.so's dependency on libc.so.
* Specify "nocrt: true" to avoid calling __cxa_finalize.

 * Define a dummy __aeabi_unwind_cpp_pr0 for arm32.

Bug: b/62815515
Bug: b/73873002
Test: boot AOSP hikey960-userdebug
Test: run ndk_cxa_example in special /system/bin/debug namespace
Test: run Bionic unit tests
Change-Id: I59bcb100a2753286b59c51a47d7a183507219a07
2018-03-30 13:56:03 -07:00
Ryan Prichard
ef59154d41 Fix build failure with dlext_testzip Bionic tests
Other build rules create and use a test config file in the intermediate
directory containing $(LOCAL_BUILT_MODULE). Currently, this makefile
deletes $(dir $(LOCAL_BUILT_MODULE)) (aka $(dir $@)), so it can delete
the config file after it's created and before it's used. Avoid this
issue by using $(dir $@)/zipdir as the working directory for
constructing a zip file.

Bug: b/74524170
Test: mmma bionic
Test: run Bionic unit tests
Change-Id: Icee4d7bc72ba1c136385a0cb2c28491649598e7c
2018-03-30 13:56:03 -07:00
Victor Hsieh
1afb40c9fe Revert "Revert system seccomp filter changes"
This reverts commit 040c28a023.

Reason for revert: reland since the actual problem has been fixed

Change-Id: Ifd8a85b0de2eb6f2a76a6458570fc03b020a90ab
Test: the apps in the bug no longer crashes.
Bug: 76461821
2018-03-30 16:48:36 +00:00
Treehugger Robot
a9419d8987 Merge "Add libtest_missing_symbol_child_private." 2018-03-29 23:28:19 +00:00
Elliott Hughes
397be0f4bd Merge "Fix -/_ typo." 2018-03-29 20:56:31 +00:00
Victor Hsieh
ed1bcf4cfb Merge "Allow several syscalls to app process" 2018-03-29 20:37:33 +00:00
Elliott Hughes
06d31c94c2 Add libtest_missing_symbol_child_private.
Bug: http://b/77236525
Bug: http://b/77276121
Test: builds
Change-Id: I7398a7f5ecefcda37d1e9e4ab6cd85c3071e9648
2018-03-29 11:28:53 -07:00
Elliott Hughes
51466528cd Fix -/_ typo.
Bug: http://b/77236525
Bug: http://b/77276121
Test: builds
Change-Id: I54adfe7898b4bd7d708240c5d9cee6ba8ec723fd
2018-03-29 11:17:37 -07:00
Treehugger Robot
a3f6f6c1b9 Merge "Add missing shared library dependencies to bionic-unit-tests" 2018-03-29 07:05:23 +00:00
Jiyong Park
ce10b16294 Add missing shared library dependencies to bionic-unit-tests
Bug: 77236525

Test: 'make tests dist' and verify that these libraries are in the
*-continuous_native_tests-*.zip

Change-Id: I9cbb6a7e4230208f7563d8f7bfc3c5e7a1e89c9b
2018-03-29 10:34:41 +09:00
Treehugger Robot
1cbcdd9c32 Merge "Add missed shared library dependency to bionic-unit-tests" 2018-03-29 01:09:19 +00:00
Victor Hsieh
e15233cc6b Allow several syscalls to app process
Several privileged syscalls are still needed before a zygote-fork hangs
over the execution to the apps.

Test: system starts, different apps run
Bug: 63944145
Bug: 76461821
Change-Id: I78da54dac509eb073bc2aa7b820a1f6b0c39a775
2018-03-28 16:30:20 -07:00
Pirama Arumuga Nainar
1395f70f6c Add missed shared library dependency to bionic-unit-tests
Test: N/A

Change-Id: I7b6cf631208a01f788760595f927aba669901350
2018-03-28 15:27:47 -07:00
Christopher Ferris
85f0542544 Merge "Use the ion.h from the kernel headers." 2018-03-28 19:18:52 +00:00
Treehugger Robot
8e3b6f45b1 Merge "Revert system seccomp filter changes" 2018-03-28 04:45:32 +00:00
Treehugger Robot
daa2a32894 Merge "Add missing shared library dependencies to bionic-unit-tests" 2018-03-27 23:30:31 +00:00
Victor Hsieh
040c28a023 Revert system seccomp filter changes
521b41 "Allow system processes to use vfork"
ed74ab "Move some syscalls in commmon whitelist to app"

An implementation bug actually assigns the system seccomp filter to all
processes after zygote forks.

Test: the apps in the bug no longer crashes.
Bug: 76461821
2018-03-27 13:43:24 -07:00
Pirama Arumuga Nainar
c53e8b88d5 Add missing shared library dependencies to bionic-unit-tests
Test: 'make tests dist' and verify that these libraries are in the
*-continuous_native_tests-*.zip

Change-Id: I2bd2ba9b44400804a125a8bc8ec49d84270d6361
2018-03-27 10:34:07 -07:00
Treehugger Robot
3bddbbe844 Merge "Fix an ifdef in a test" 2018-03-27 16:55:38 +00:00
George Burgess IV
e9c0e828de Fix an ifdef in a test
We don't support GCC here anymore. More importantly: `#ifdef foo &&
bar` is apparently parsed as `#ifdef foo` with extra tokens at the end.
Oops.

Bug: None
Test: Treehugger
Change-Id: I63d09b0fbad688d3b68a3327a52b3bb55627272f
2018-03-26 18:03:16 -07:00
Tom Cherry
60fd72e8a3 Merge "Create PTHREAD_COND_INITIALIZER_MONOTONIC_NP" 2018-03-26 23:15:11 +00:00
Elliott Hughes
8bd8121204 Merge "Reject .so files using ELF TLS." 2018-03-26 18:07:09 +00:00
Tom Cherry
f0f3d2f002 Create PTHREAD_COND_INITIALIZER_MONOTONIC_NP
Needed for std::condition_variable to wait on CLOCK_MONOTONIC.

Test: boot bullhead
Change-Id: I32a30817f0ec2190393fcc6faec45b40822cba32
2018-03-26 09:00:51 -07:00
Elliott Hughes
9724e93c19 Reject .so files using ELF TLS.
Bug: http://b/74361956
Test: ran tests
Change-Id: I53e71252eb08c607c2c436dcba433374c8c53887
2018-03-23 18:46:07 -07:00
Treehugger Robot
4d33928708 Merge "Exit gracefully on invalid --gtest_* flag." 2018-03-23 19:20:29 +00:00
Tao Bao
9932789996 Exit gracefully on invalid --gtest_* flag.
My gtest run crashed when I provided wrong flag (e.g. --gtest_list),
because it tried to call std::vector::back() on empty testcase_list.

Test: /data/nativetest/bionic-unit-tests/bionic-unit-tests works.
Test: `/d/n/b/bionic-unit-tests --gtest_invalid` dumps the gtest help
      message.
Change-Id: I5f63c7fa6476d8749248c9b54d3023446f3e0e77
2018-03-23 09:40:21 -07:00