OSDN Git Service

android-x86/bionic.git
7 years agoMerge "Autogenerate single policy from syscalls and whitelist"
Paul Lawrence [Thu, 23 Feb 2017 20:40:21 +0000 (20:40 +0000)]
Merge "Autogenerate single policy from syscalls and whitelist"
am: b2a74cda90

Change-Id: Iaebc4930e1685570a7daee6bf62719115f909108

7 years agoMerge "Autogenerate single policy from syscalls and whitelist"
Treehugger Robot [Thu, 23 Feb 2017 20:27:45 +0000 (20:27 +0000)]
Merge "Autogenerate single policy from syscalls and whitelist"

7 years agoAutogenerate single policy from syscalls and whitelist
Paul Lawrence [Tue, 14 Feb 2017 21:32:23 +0000 (13:32 -0800)]
Autogenerate single policy from syscalls and whitelist

Bug: 35392119
Bug: 34465958
Test: Check boots and same syscalls are blocked as before

Change-Id: I9efa97032c59aebbbfd32e6f0d2d491f6254f0a2

7 years agoMerge "Add test for a greylisted library"
Dimitry Ivanov [Thu, 23 Feb 2017 17:13:34 +0000 (17:13 +0000)]
Merge "Add test for a greylisted library"
am: 3f76dadf15

Change-Id: Ia5bb595314b154bca36d816f30b640eaf20c6cd7

7 years agoMerge "Add test for a greylisted library"
Dimitry Ivanov [Thu, 23 Feb 2017 17:11:18 +0000 (17:11 +0000)]
Merge "Add test for a greylisted library"

7 years agoAdd test for a greylisted library
Dimitry Ivanov [Tue, 21 Feb 2017 21:41:08 +0000 (13:41 -0800)]
Add test for a greylisted library

Test: bionic-unit-tests --gtest_filter=dlext.ns*
Bug: http://b/35338922
Change-Id: I2f4895cb1ec458c2f565a7e4d06f7a1f6200e7aa

7 years agoMerge "Cope with argv[0] being null in the dynamic linker."
Elliott Hughes [Thu, 23 Feb 2017 03:32:49 +0000 (03:32 +0000)]
Merge "Cope with argv[0] being null in the dynamic linker."
am: c84e8a507c

Change-Id: I9d864e07d907a5090266658e074953cca119678a

7 years agoMerge "Allocate thread local buffers in __init_tls."
Josh Gao [Thu, 23 Feb 2017 03:30:22 +0000 (03:30 +0000)]
Merge "Allocate thread local buffers in __init_tls."
am: 7009f40e52

Change-Id: I11737e4ea95f517d71f4b08051f67b218c0f2c6c

7 years agoMerge "Cope with argv[0] being null in the dynamic linker."
Treehugger Robot [Thu, 23 Feb 2017 03:29:42 +0000 (03:29 +0000)]
Merge "Cope with argv[0] being null in the dynamic linker."

7 years agoMerge "Allocate thread local buffers in __init_tls."
Josh Gao [Thu, 23 Feb 2017 03:24:44 +0000 (03:24 +0000)]
Merge "Allocate thread local buffers in __init_tls."

7 years agoCope with argv[0] being null in the dynamic linker.
Elliott Hughes [Thu, 23 Feb 2017 01:31:41 +0000 (17:31 -0800)]
Cope with argv[0] being null in the dynamic linker.

Somewhat unsurprisingly, very few commands are happy to be run like this,
in particular multiplexed commands like toybox. But that's no reason for
the linker to get in the way too.

Bug: http://b/33276926
Test: new test
Change-Id: I6dd71ea0183f4da83571039c2198ebb6ed38520e

7 years agoAllocate thread local buffers in __init_tls.
Josh Gao [Wed, 22 Feb 2017 20:19:05 +0000 (12:19 -0800)]
Allocate thread local buffers in __init_tls.

Thread local buffers were using pthread_setspecific for storage with
lazy initialization. pthread_setspecific shares TLS slots between the
linker and libc.so, so thread local buffers being initialized in a
different order between libc.so and the linker meant that bad things
would happen (manifesting as snprintf not working because the
locale was mangled)

Bug: http://b/20464031
Test: /data/nativetest64/bionic-unit-tests/bionic-unit-tests
      everything passes
Test: /data/nativetest/bionic-unit-tests/bionic-unit-tests
      thread_local tests are failing both before and after (KUSER_HELPERS?)
Test: /data/nativetest64/bionic-unit-tests-static/bionic-unit-tests-static
      no additional failures
Change-Id: I9f445a77c6e86979f3fa49c4a5feecf6ec2b0c3f

7 years agoMerge "Add timeout support to __system_property_wait."
Elliott Hughes [Wed, 22 Feb 2017 01:47:53 +0000 (01:47 +0000)]
Merge "Add timeout support to __system_property_wait."
am: c9a840ac76

Change-Id: Ifaa6521599c8d36386cee6e980d0e10a7a6c1ef9

7 years agoMerge "Add timeout support to __system_property_wait."
Treehugger Robot [Wed, 22 Feb 2017 01:43:30 +0000 (01:43 +0000)]
Merge "Add timeout support to __system_property_wait."

7 years agoMerge "Downgrade the special case of pthread_t(0) to a warning."
Elliott Hughes [Wed, 22 Feb 2017 00:42:11 +0000 (00:42 +0000)]
Merge "Downgrade the special case of pthread_t(0) to a warning."
am: 2cb4fb033f

Change-Id: If4f963995645b9d57666d0cef0661aa96d8aa2a1

7 years agoMerge "Downgrade the special case of pthread_t(0) to a warning."
Treehugger Robot [Wed, 22 Feb 2017 00:37:08 +0000 (00:37 +0000)]
Merge "Downgrade the special case of pthread_t(0) to a warning."

7 years agoAdd timeout support to __system_property_wait.
Elliott Hughes [Fri, 17 Feb 2017 01:13:04 +0000 (17:13 -0800)]
Add timeout support to __system_property_wait.

Bug: http://b/35201172
Test: ran tests
Change-Id: I3a78813bf3cd50d1b308ecb3c742f923606c0cc4

7 years agoDowngrade the special case of pthread_t(0) to a warning.
Elliott Hughes [Tue, 21 Feb 2017 21:15:20 +0000 (13:15 -0800)]
Downgrade the special case of pthread_t(0) to a warning.

So far this is the only issue we've hit in vendor code, and we've hit
it several times already. Rather than try to fix bullhead (the current
problem), let's just admit that the special case of 0 is a lot less
worrying.

Also fix the test expectations to correspond to the new abort message.

Bug: http://b/35455349 (crashes on 0)
Bug: http://b/35622944 (tests)
Test: ran tests
Change-Id: Iec57011fa699a954ebeaec151db2193e36d1ef35

7 years agoMerge "Fix a comment in the pthread_cond_t implementation."
Elliott Hughes [Sun, 19 Feb 2017 05:23:49 +0000 (05:23 +0000)]
Merge "Fix a comment in the pthread_cond_t implementation."
am: 4085423525

Change-Id: Iaf8f9accf72bca7aa90cbda76014cde5683f1204

7 years agoMerge "Fix a comment in the pthread_cond_t implementation."
Treehugger Robot [Sun, 19 Feb 2017 05:19:54 +0000 (05:19 +0000)]
Merge "Fix a comment in the pthread_cond_t implementation."

7 years agoFix a comment in the pthread_cond_t implementation.
Elliott Hughes [Sun, 19 Feb 2017 00:35:36 +0000 (16:35 -0800)]
Fix a comment in the pthread_cond_t implementation.

Bug: http://b/34592766
Test: N/A
Change-Id: I341f837dca52865ae5f8fe9ff50ba8999e297179

7 years agoMerge "Fix debug.ld for apps with long names and services"
Dimitry Ivanov [Sat, 18 Feb 2017 00:54:48 +0000 (00:54 +0000)]
Merge "Fix debug.ld for apps with long names and services"
am: bc645ef068

Change-Id: If90d37eced3d4ae512da3091987a306c7f049d96

7 years agoMerge "Fix debug.ld for apps with long names and services"
Treehugger Robot [Sat, 18 Feb 2017 00:50:47 +0000 (00:50 +0000)]
Merge "Fix debug.ld for apps with long names and services"

7 years agoMerge "Revert "Revert "Make libc.so global"""
Dimitry Ivanov [Sat, 18 Feb 2017 00:24:46 +0000 (00:24 +0000)]
Merge "Revert "Revert "Make libc.so global"""
am: ff3197bcc2

Change-Id: I645c686c7803c46627959caf0d47a03cb5387029

7 years agoMerge "Revert "Revert "Make libc.so global"""
Treehugger Robot [Sat, 18 Feb 2017 00:18:26 +0000 (00:18 +0000)]
Merge "Revert "Revert "Make libc.so global"""

7 years agoFix debug.ld for apps with long names and services
Dimitry Ivanov [Fri, 17 Feb 2017 22:41:30 +0000 (14:41 -0800)]
Fix debug.ld for apps with long names and services

1. There is no longer limit on property names - remove
   the trimming the name of the property.
2. Make debug.ld work for processes with names ending with ":something"
   This is naming convention for services:
   https://developer.android.com/guide/components/services.html

Bug: http://b/35338922
Bug: http://b/33926793
Test: manual - set ld.debug.app property for the app
Test: from http://b/35338922 and see that it works
Test: for the service as well.
Change-Id: Ic7c6d4edce4a5a22f144496d5c0a3e458217c6e4

7 years agoRevert "Revert "Make libc.so global""
Dimitry Ivanov [Thu, 16 Feb 2017 20:03:21 +0000 (12:03 -0800)]
Revert "Revert "Make libc.so global""

This reverts commit 65236d43e8e8ea2155c0d64e35f00b3c30b21147.

Bug: http://b/35417197
Bug: http://b/35338922
Test: vogar --classpath out/target/common/obj/JAVA_LIBRARIES/core-tests_intermediates/classes.jack  --mode=device --variant=X32 dalvik.system.JniTest#testGetSuperclass
Change-Id: Ibf3bb7396e7d11ebe95e2f9267d0fc4af3fbe8c5

7 years agoMerge "Cleanup now that we don't need __NDK_FPABI__."
Dan Albert [Fri, 17 Feb 2017 22:13:05 +0000 (22:13 +0000)]
Merge "Cleanup now that we don't need __NDK_FPABI__."
am: 4731fbd6e0

Change-Id: I62dc4eaefc95d2875cb6ba383d24a2c449005d60

7 years agoMerge "Cleanup now that we don't need __NDK_FPABI__."
Treehugger Robot [Fri, 17 Feb 2017 21:11:26 +0000 (21:11 +0000)]
Merge "Cleanup now that we don't need __NDK_FPABI__."

7 years agoMerge "Include the pthread_t in the "bad pthread_t" fatal abort." am: ce958d7e5c
Elliott Hughes [Fri, 17 Feb 2017 20:51:04 +0000 (20:51 +0000)]
Merge "Include the pthread_t in the "bad pthread_t" fatal abort." am: ce958d7e5c
am: 2caaf22e1d

Change-Id: I9330d5b8f57fcf78a2ad98d394f017686333923d

7 years agoMerge "Include the pthread_t in the "bad pthread_t" fatal abort."
Elliott Hughes [Fri, 17 Feb 2017 20:49:27 +0000 (20:49 +0000)]
Merge "Include the pthread_t in the "bad pthread_t" fatal abort."
am: ce958d7e5c

Change-Id: Ic30b9e90c17ddc69c15b1b83d0dc568deea80420

7 years agoMerge "Include the pthread_t in the "bad pthread_t" fatal abort."
Treehugger Robot [Fri, 17 Feb 2017 20:44:43 +0000 (20:44 +0000)]
Merge "Include the pthread_t in the "bad pthread_t" fatal abort."

7 years agoMerge "Add tests for ptrace resumption behavior." am: d11584665c
Josh Gao [Fri, 17 Feb 2017 19:46:25 +0000 (19:46 +0000)]
Merge "Add tests for ptrace resumption behavior." am: d11584665c
am: d4233fbc5e

Change-Id: Id0ee86d392268211501183e67600bcb9c7fde1d9

7 years agoMerge "Add tests for ptrace resumption behavior."
Josh Gao [Fri, 17 Feb 2017 19:42:53 +0000 (19:42 +0000)]
Merge "Add tests for ptrace resumption behavior."
am: d11584665c

Change-Id: I4a57cc866b5a7facecd9cbe0084cd0c55304d58f

7 years agoMerge "Add tests for ptrace resumption behavior."
Josh Gao [Fri, 17 Feb 2017 19:35:58 +0000 (19:35 +0000)]
Merge "Add tests for ptrace resumption behavior."

7 years agoCleanup now that we don't need __NDK_FPABI__.
Dan Albert [Fri, 17 Feb 2017 19:08:53 +0000 (11:08 -0800)]
Cleanup now that we don't need __NDK_FPABI__.

Test: tools/update_headers.sh && make checkbuild
Bug: None
Change-Id: I1b9986c4d7d5da349a8ad394e8fcf64b87c89fdf

7 years agoInclude the pthread_t in the "bad pthread_t" fatal abort.
Elliott Hughes [Fri, 17 Feb 2017 18:27:45 +0000 (10:27 -0800)]
Include the pthread_t in the "bad pthread_t" fatal abort.

Also reword the message to be stronger.

Bug: http://b/35455349
Test: manual
Change-Id: I8f34fd42f3b635c95a7b921645a016fb303ce3ad

7 years agoMerge changes from topic 'debuggerd_inproc' am: 4509e0ec94 am: 243b4ba143
Josh Gao [Thu, 16 Feb 2017 23:28:22 +0000 (23:28 +0000)]
Merge changes from topic 'debuggerd_inproc' am: 4509e0ec94 am: 243b4ba143
am: 82503678f0

Change-Id: I1d4efc4b34effcce377c2c83e016f6e0bcca620c

7 years agoMerge changes from topic 'debuggerd_inproc' am: 4509e0ec94
Josh Gao [Thu, 16 Feb 2017 23:23:51 +0000 (23:23 +0000)]
Merge changes from topic 'debuggerd_inproc' am: 4509e0ec94
am: 243b4ba143

Change-Id: Ief1c3ba804e4d6832340fb51e68b54d174f3a5da

7 years agoMerge changes from topic 'debuggerd_inproc'
Josh Gao [Thu, 16 Feb 2017 23:19:24 +0000 (23:19 +0000)]
Merge changes from topic 'debuggerd_inproc'
am: 4509e0ec94

Change-Id: I120a178e8332e650b96f708a3e68c9e3ba4e726c

7 years agoMerge changes from topic 'debuggerd_inproc'
Josh Gao [Thu, 16 Feb 2017 23:11:51 +0000 (23:11 +0000)]
Merge changes from topic 'debuggerd_inproc'

* changes:
  linker: use fallback crash handler dumping.
  linker: add android_use_fallback_allocator.

7 years agoAdd tests for ptrace resumption behavior.
Josh Gao [Thu, 16 Feb 2017 22:12:41 +0000 (14:12 -0800)]
Add tests for ptrace resumption behavior.

Add tests that ensure that the kernel behaves properly w.r.t.
resumption of ptraced processes when the tracer dies.

Bug: http://b/34516140
Test: /data/nativetest/bionic-unit-tests/bionic-unit-tests --gtest_filter="PtraceResumption*"
Change-Id: Id35e069a7e5edd6964637dd3f6358ad59db19792

7 years agoMerge "Add __libc_format_buffer_va_list." am: fec0e015ce am: 33b9640132
Josh Gao [Thu, 16 Feb 2017 03:56:32 +0000 (03:56 +0000)]
Merge "Add __libc_format_buffer_va_list." am: fec0e015ce am: 33b9640132
am: f1d42d6acd

Change-Id: I447306ecc5218d7638181fe9a163cf5e10b0cad4

7 years agoMerge "Add __libc_format_buffer_va_list." am: fec0e015ce
Josh Gao [Thu, 16 Feb 2017 03:53:33 +0000 (03:53 +0000)]
Merge "Add __libc_format_buffer_va_list." am: fec0e015ce
am: 33b9640132

Change-Id: I6848c4ef176cd04daa8ca1d1799aa69f1a00678d

7 years agoMerge "Add __libc_format_buffer_va_list."
Josh Gao [Thu, 16 Feb 2017 03:50:03 +0000 (03:50 +0000)]
Merge "Add __libc_format_buffer_va_list."
am: fec0e015ce

Change-Id: I1028ee851f6fdd30e93858e89a5bd741bbb54e62

7 years agoMerge "Add __libc_format_buffer_va_list."
Josh Gao [Thu, 16 Feb 2017 03:42:50 +0000 (03:42 +0000)]
Merge "Add __libc_format_buffer_va_list."

7 years agoMerge "Unify linker files under one license (BSD)" am: 10a441bfcd am: a368dd9dbf
Dimitry Ivanov [Thu, 16 Feb 2017 02:31:59 +0000 (02:31 +0000)]
Merge "Unify linker files under one license (BSD)" am: 10a441bfcd am: a368dd9dbf
am: 401384c3de

Change-Id: I8e26fc4518a0b89fec88e217e1ea04bf357182b2

7 years agoMerge "Unify linker files under one license (BSD)" am: 10a441bfcd
Dimitry Ivanov [Thu, 16 Feb 2017 02:28:28 +0000 (02:28 +0000)]
Merge "Unify linker files under one license (BSD)" am: 10a441bfcd
am: a368dd9dbf

Change-Id: Ic3da42612438aad889c916092e0293be89b9c340

7 years agoMerge "Unify linker files under one license (BSD)"
Dimitry Ivanov [Thu, 16 Feb 2017 02:24:27 +0000 (02:24 +0000)]
Merge "Unify linker files under one license (BSD)"
am: 10a441bfcd

Change-Id: I63ea67e032edcdf9bc27180030b5e6b1ae2473d4

7 years agoMerge "Unify linker files under one license (BSD)"
Treehugger Robot [Thu, 16 Feb 2017 02:15:54 +0000 (02:15 +0000)]
Merge "Unify linker files under one license (BSD)"

7 years agolinker: use fallback crash handler dumping.
Josh Gao [Thu, 9 Feb 2017 01:27:20 +0000 (17:27 -0800)]
linker: use fallback crash handler dumping.

Bug: http://b/34684590
Test: mma
Change-Id: I0801a83768f172308339ab2118e492b5df96acd0

7 years agolinker: add android_use_fallback_allocator.
Josh Gao [Thu, 9 Feb 2017 18:54:44 +0000 (10:54 -0800)]
linker: add android_use_fallback_allocator.

Add a function to enable a fallback allocator to use for crash handling
in a signal handler.

Bug: http://b/34684590
Test: crasher PR_SET_NO_NEW_PRIVS
Change-Id: Ifa5de636164f34b8cb2fdec4471c20f8516b6dbe

7 years agoAdd __libc_format_buffer_va_list.
Josh Gao [Wed, 15 Feb 2017 19:46:55 +0000 (11:46 -0800)]
Add __libc_format_buffer_va_list.

Bug: http://b/35367169
Test: m
Change-Id: I133f231d3b93bdef56d06497679320a89c7188a9

7 years agoUnify linker files under one license (BSD)
Dimitry Ivanov [Wed, 15 Feb 2017 23:31:13 +0000 (15:31 -0800)]
Unify linker files under one license (BSD)

Historically we had part of the linker licensed under BSD and
another part under Apache 2 license. This commit makes all the
linker code licensed under BSD license.

Test: m
Change-Id: I11b8163ae75966b5768d3fe992679de376106515

7 years agoMerge changes I9d06ea8a,I2d157024 am: 606ba2762e am: cec0e2f9b1
Dan Albert [Wed, 15 Feb 2017 19:30:29 +0000 (19:30 +0000)]
Merge changes I9d06ea8a,I2d157024 am: 606ba2762e am: cec0e2f9b1
am: 4587ac034b

Change-Id: I33c08738e7fb605bb97236f36880a61372aba769

7 years agoMerge changes I9d06ea8a,I2d157024 am: 606ba2762e
Dan Albert [Wed, 15 Feb 2017 19:26:57 +0000 (19:26 +0000)]
Merge changes I9d06ea8a,I2d157024 am: 606ba2762e
am: cec0e2f9b1

Change-Id: I224d0d121716b0bee40478d3011a2f625248300a

7 years agoMerge changes I9d06ea8a,I2d157024
Dan Albert [Wed, 15 Feb 2017 19:24:02 +0000 (19:24 +0000)]
Merge changes I9d06ea8a,I2d157024
am: 606ba2762e

Change-Id: I85a709298e33ee2475db2e4af2312b7c9ae93e12

7 years agoMerge changes I9d06ea8a,I2d157024
Treehugger Robot [Wed, 15 Feb 2017 19:14:49 +0000 (19:14 +0000)]
Merge changes I9d06ea8a,I2d157024

* changes:
  Fixup API level guards for new fortify functions.
  Guard the GNU strerror_r with an API check.

7 years agoMerge "add fortified implementations of send/sendto" am: c54937b972 am: 0a4fb394c8
Daniel Micay [Wed, 15 Feb 2017 18:41:25 +0000 (18:41 +0000)]
Merge "add fortified implementations of send/sendto" am: c54937b972 am: 0a4fb394c8
am: 63e9cd65f3

Change-Id: I23328cb633a50a5821ae7d29dc68b8abeaa06228

7 years agoMerge "add fortified implementations of send/sendto" am: c54937b972
Daniel Micay [Wed, 15 Feb 2017 18:38:56 +0000 (18:38 +0000)]
Merge "add fortified implementations of send/sendto" am: c54937b972
am: 0a4fb394c8

Change-Id: Ib9ba3836fa2f197388a4659906b2b0664a497098

7 years agoMerge "add fortified implementations of send/sendto"
Daniel Micay [Wed, 15 Feb 2017 18:34:27 +0000 (18:34 +0000)]
Merge "add fortified implementations of send/sendto"
am: c54937b972

Change-Id: I74107e22aa6f3e62e9225f6201d6b70daf6ea427

7 years agoMerge "add fortified implementations of send/sendto"
Treehugger Robot [Wed, 15 Feb 2017 18:26:49 +0000 (18:26 +0000)]
Merge "add fortified implementations of send/sendto"

7 years agoFixup API level guards for new fortify functions.
Dan Albert [Wed, 15 Feb 2017 03:28:18 +0000 (19:28 -0800)]
Fixup API level guards for new fortify functions.

Test: tools/update_headers.sh && make checkbuild
Bug: None
Change-Id: I9d06ea8a5ee9dc27d957f59e6e84150651ed1c76

7 years agoGuard the GNU strerror_r with an API check.
Dan Albert [Wed, 15 Feb 2017 00:33:06 +0000 (16:33 -0800)]
Guard the GNU strerror_r with an API check.

The deprecated headers have always had only the POSIX definition
available (and it's always been available). With the unified headers
as they are now, we actually make it unavailable for C++ users (C++
implies _GNU_SOURCE) targeting below M. Adding this guard means that
pre-M users will still at least get the POSIX one.

It's not great that moving to M as your target API will actually
change the signature of your strerror_r, but I don't see a better
option here (not until we have the compatibility library, anyway).

Test: make checkbuild
Bug: None
Change-Id: I2d15702467533a826c4ec10fd973ee929d2b562a

7 years agoadd fortified implementations of send/sendto
Daniel Micay [Tue, 14 Feb 2017 01:27:59 +0000 (17:27 -0800)]
add fortified implementations of send/sendto

Bug: None
Test: Bullhead builds+boots; CtsBionicTestCases passes.
Change-Id: I2f137a100f679f7f2145d84b2f29ddd3e96a36ae

7 years agoMerge "Add details on why AT_SYMLINK_NOFOLLOW is dangerous" am: 7b52454084 am: 42969056d0
Nick Kralevich [Tue, 14 Feb 2017 23:31:09 +0000 (23:31 +0000)]
Merge "Add details on why AT_SYMLINK_NOFOLLOW is dangerous" am: 7b52454084 am: 42969056d0
am: 98aad56070

Change-Id: I3cbca82748330f968c0361c13df488c74fefe337

7 years agoMerge "Add details on why AT_SYMLINK_NOFOLLOW is dangerous" am: 7b52454084
Nick Kralevich [Tue, 14 Feb 2017 23:13:36 +0000 (23:13 +0000)]
Merge "Add details on why AT_SYMLINK_NOFOLLOW is dangerous" am: 7b52454084
am: 42969056d0

Change-Id: Ic71a202f3c64f36e1d80af7f2fa64cf72d020626

7 years agoMerge "Add details on why AT_SYMLINK_NOFOLLOW is dangerous"
Nick Kralevich [Tue, 14 Feb 2017 23:11:06 +0000 (23:11 +0000)]
Merge "Add details on why AT_SYMLINK_NOFOLLOW is dangerous"
am: 7b52454084

Change-Id: If9d65e973d9fda2ceb373ca050608cde52ebad25

7 years agoMerge "Add details on why AT_SYMLINK_NOFOLLOW is dangerous"
Treehugger Robot [Tue, 14 Feb 2017 23:08:12 +0000 (23:08 +0000)]
Merge "Add details on why AT_SYMLINK_NOFOLLOW is dangerous"

7 years agoMerge "Revert "Make libc.so global"" am: e7ea7612f9 am: 028e306731
Dimitry Ivanov [Tue, 14 Feb 2017 22:56:33 +0000 (22:56 +0000)]
Merge "Revert "Make libc.so global"" am: e7ea7612f9 am: 028e306731
am: 0379c92138

Change-Id: I69c44fa749d25e44a302d95fe88ffd6306bdf92b

7 years agoMerge "Revert "Make libc.so global"" am: e7ea7612f9
Dimitry Ivanov [Tue, 14 Feb 2017 22:54:35 +0000 (22:54 +0000)]
Merge "Revert "Make libc.so global"" am: e7ea7612f9
am: 028e306731

Change-Id: If09db33cbb36328f99753b41dac2ced87f79f0a1

7 years agoMerge "Revert "Make libc.so global""
Dimitry Ivanov [Tue, 14 Feb 2017 22:49:33 +0000 (22:49 +0000)]
Merge "Revert "Make libc.so global""
am: e7ea7612f9

Change-Id: I975b9aa0aaa8307592593163fef1bbfb2940f8e5

7 years agoMerge "Revert "Make libc.so global""
Treehugger Robot [Tue, 14 Feb 2017 22:40:58 +0000 (22:40 +0000)]
Merge "Revert "Make libc.so global""

7 years agoAdd details on why AT_SYMLINK_NOFOLLOW is dangerous
Nick Kralevich [Tue, 14 Feb 2017 17:49:30 +0000 (09:49 -0800)]
Add details on why AT_SYMLINK_NOFOLLOW is dangerous

The comment isn't helpful as-is. Provide some clarifying information.

Test: code compiles. No functional changes.
Change-Id: I5267e0bc68857fdc8a4b3384a2a1b0d37693ee6e

7 years agoMerge "Be more strict about using invalid `pthread_t`s." am: 0370905502 am: a18e9f88c8
Elliott Hughes [Tue, 14 Feb 2017 19:08:18 +0000 (19:08 +0000)]
Merge "Be more strict about using invalid `pthread_t`s." am: 0370905502 am: a18e9f88c8
am: daa5c8afa9

Change-Id: Ifd6fb9a24635b7f1cb32178247fd0e16a00502ea

7 years agoMerge "Be more strict about using invalid `pthread_t`s." am: 0370905502
Elliott Hughes [Tue, 14 Feb 2017 19:06:18 +0000 (19:06 +0000)]
Merge "Be more strict about using invalid `pthread_t`s." am: 0370905502
am: a18e9f88c8

Change-Id: Ie74df14b7772a0f14f9b20fa3c58d6455e55e42d

7 years agoMerge "Be more strict about using invalid `pthread_t`s."
Elliott Hughes [Tue, 14 Feb 2017 19:03:48 +0000 (19:03 +0000)]
Merge "Be more strict about using invalid `pthread_t`s."
am: 0370905502

Change-Id: I476dfe579855d06ea7a1ab34888642f43c58725b

7 years agoRevert "Make libc.so global"
Dimitry Ivanov [Tue, 14 Feb 2017 19:03:26 +0000 (19:03 +0000)]
Revert "Make libc.so global"

This reverts commit 879177c9e12df4efe9f17ff3536005c258f625e8.

Bug: http://b/26833548
Change-Id: I23e0b34777d18e369063185da14c57994807da29

7 years agoMerge "Be more strict about using invalid `pthread_t`s."
Elliott Hughes [Tue, 14 Feb 2017 18:32:18 +0000 (18:32 +0000)]
Merge "Be more strict about using invalid `pthread_t`s."

7 years agoMerge "Add __system_property_wait and return the serial in __system_property_read_cal...
Elliott Hughes [Tue, 14 Feb 2017 03:56:24 +0000 (03:56 +0000)]
Merge "Add __system_property_wait and return the serial in __system_property_read_callback." am: ade3be476f am: c9df674347
am: 520814a223

Change-Id: Id98cf76455a07eae901ea28aef2c273480722c70

7 years agoMerge "Add __system_property_wait and return the serial in __system_property_read_cal...
Elliott Hughes [Tue, 14 Feb 2017 03:54:22 +0000 (03:54 +0000)]
Merge "Add __system_property_wait and return the serial in __system_property_read_callback." am: ade3be476f
am: c9df674347

Change-Id: I62ca9f6f84cfb91875a6b5d9cf4aa47fb4299655

7 years agoMerge "Add __system_property_wait and return the serial in __system_property_read_cal...
Elliott Hughes [Tue, 14 Feb 2017 03:52:23 +0000 (03:52 +0000)]
Merge "Add __system_property_wait and return the serial in __system_property_read_callback."
am: ade3be476f

Change-Id: I33c5acd3ebba551723639aa2b2540603e2434b4c

7 years agoMerge "Add __system_property_wait and return the serial in __system_property_read_cal...
Treehugger Robot [Tue, 14 Feb 2017 03:48:23 +0000 (03:48 +0000)]
Merge "Add __system_property_wait and return the serial in __system_property_read_callback."

7 years agoBe more strict about using invalid `pthread_t`s.
Elliott Hughes [Tue, 14 Feb 2017 01:59:29 +0000 (17:59 -0800)]
Be more strict about using invalid `pthread_t`s.

Another release, another attempt to remove the global thread list.

But this time, let's admit that it's not going away. We can switch to using
a read/write lock for the global thread list, and to aborting rather than
quietly returning ESRCH if we're given an invalid pthread_t.

This change affects pthread_detach, pthread_getcpuclockid,
pthread_getschedparam/pthread_setschedparam, pthread_join, and pthread_kill:
instead of returning ESRCH when passed an invalid pthread_t, if you're
targeting O or above, they'll abort with the message "attempt to use
invalid pthread_t".

Note that this doesn't change behavior as much as you might think: the old
lookup only held the global thread list lock for the duration of the lookup,
so there was still a race between that and the dereference in the caller,
given that callers actually need the tid to pass to some syscall or other,
and sometimes update fields in the pthread_internal_t struct too.

(This patch replaces such users with calls to pthread_gettid_np, which
at least makes the TOCTOU window smaller.)

We can't check thread->tid against 0 to see whether a pthread_t is still
valid because a dead thread gets its thread struct unmapped along with its
stack, so the dereference isn't safe.

Taking the affected functions one by one:

    * pthread_getcpuclockid and pthread_getschedparam/pthread_setschedparam
      should be fine. Unsafe calls to those seem highly unlikely.

    * Unsafe pthread_detach callers probably want to switch to
      pthread_attr_setdetachstate instead, or using
      pthread_detach(pthread_self()) from the new thread's start routine
      rather than doing the detach in the parent.

    * pthread_join calls should be safe anyway, because a joinable thread
      won't actually exit and unmap until it's joined. If you're joining an
      unjoinable thread, the fix is to stop marking it detached. If you're
      joining an already-joined thread, you need to rethink your design.

    * Unsafe pthread_kill calls aren't portably fixable. (And are obviously
      inherently non-portable as-is.) The best alternative on Android is to
      use pthread_gettid_np at some point that you know the thread to be
      alive, and then call kill/tgkill directly.

      That's still not completely safe because if you're too late, the tid
      may have been reused, but then your code is inherently unsafe anyway.

Bug: http://b/19636317
Test: ran tests
Change-Id: I0372c4428e8a7f1c3af5c9334f5d9c25f2c73f21

7 years agoMerge "Do not use std::vector in android_namespace_t::is_accessible" am: 9fc52deab1...
Dimitry Ivanov [Mon, 13 Feb 2017 21:54:30 +0000 (21:54 +0000)]
Merge "Do not use std::vector in android_namespace_t::is_accessible" am: 9fc52deab1 am: 62b5ca5a11
am: c42072bedf

Change-Id: Ic8238d945ea6f154a13861ab527ebb72f9c12c7b

7 years agoMerge "Do not use std::vector in android_namespace_t::is_accessible" am: 9fc52deab1
Dimitry Ivanov [Mon, 13 Feb 2017 21:51:31 +0000 (21:51 +0000)]
Merge "Do not use std::vector in android_namespace_t::is_accessible" am: 9fc52deab1
am: 62b5ca5a11

Change-Id: Ib861240a66a23655f10ea346d4648c13a5f6e5f2

7 years agoMerge "Do not use std::vector in android_namespace_t::is_accessible"
Dimitry Ivanov [Mon, 13 Feb 2017 21:49:30 +0000 (21:49 +0000)]
Merge "Do not use std::vector in android_namespace_t::is_accessible"
am: 9fc52deab1

Change-Id: I0449e82bb130e9eed59ccf932a97ce69c16b7a4d

7 years agoMerge "Do not use std::vector in android_namespace_t::is_accessible"
Treehugger Robot [Mon, 13 Feb 2017 21:43:48 +0000 (21:43 +0000)]
Merge "Do not use std::vector in android_namespace_t::is_accessible"

7 years agoAdd __system_property_wait and return the serial in __system_property_read_callback.
Elliott Hughes [Sat, 11 Feb 2017 02:13:46 +0000 (18:13 -0800)]
Add __system_property_wait and return the serial in __system_property_read_callback.

In order to implement android::base::WaitForProperty well, we need a way to
wait not for *any* property to change (__system_property_wait_any), but to
specifically wait for the property represented by a given `prop_info` to
change.

The android::base::WaitForProperty implementation, like attempts to cache
system properties in the past, also needs a way to keep serials and values
in sync, but the existing functions don't provide a cheap way to get a
consistent snapshot. Change the __system_property_read_callback callback's
type to include the serial corresponding to the given value.

Add a test, slightly clean up some of the existing tests (and name them to
include the names of the functions they're testing, in our usual style).

Bug: http://b/35201172
Test: ran tests
Change-Id: Ibc8ebe2e88eef1e333a1bd3dd7f68135f1ba7fb5

7 years agoMerge "Make libc.so global" am: 5b74e9b2f5 am: 96a8cfcd09
Dimitry Ivanov [Mon, 13 Feb 2017 20:40:57 +0000 (20:40 +0000)]
Merge "Make libc.so global" am: 5b74e9b2f5 am: 96a8cfcd09
am: eb108f8e0d

Change-Id: I6ad39544746d87b0b737bfeb5323125f8ff24a48

7 years agoMerge "Make libc.so global" am: 5b74e9b2f5
Dimitry Ivanov [Mon, 13 Feb 2017 20:38:25 +0000 (20:38 +0000)]
Merge "Make libc.so global" am: 5b74e9b2f5
am: 96a8cfcd09

Change-Id: I04bfd1c0165b5ff9f4af16511031f66393902be9

7 years agoMerge "Make libc.so global"
Dimitry Ivanov [Mon, 13 Feb 2017 20:35:55 +0000 (20:35 +0000)]
Merge "Make libc.so global"
am: 5b74e9b2f5

Change-Id: Ie5dc459b78b4b7fad148af3196aeec6df1faba59

7 years agoMerge "Make libc.so global"
Treehugger Robot [Mon, 13 Feb 2017 20:29:51 +0000 (20:29 +0000)]
Merge "Make libc.so global"

7 years agoMerge "Match __bos0 to __pass_object_size0 in FORTIFY" am: 572b1dde03 am: ae80a17b4f
George Burgess IV [Mon, 13 Feb 2017 19:52:52 +0000 (19:52 +0000)]
Merge "Match __bos0 to __pass_object_size0 in FORTIFY" am: 572b1dde03 am: ae80a17b4f
am: 20c5fe3a2b

Change-Id: Iad9923bdecdf8a10686dc62c25e644071b9bda98

7 years agoMerge "Match __bos0 to __pass_object_size0 in FORTIFY" am: 572b1dde03
George Burgess IV [Mon, 13 Feb 2017 19:50:22 +0000 (19:50 +0000)]
Merge "Match __bos0 to __pass_object_size0 in FORTIFY" am: 572b1dde03
am: ae80a17b4f

Change-Id: I27b09cb45c33858a2a42df4fecedeace024f1cf0

7 years agoMerge "Match __bos0 to __pass_object_size0 in FORTIFY"
George Burgess IV [Mon, 13 Feb 2017 19:47:53 +0000 (19:47 +0000)]
Merge "Match __bos0 to __pass_object_size0 in FORTIFY"
am: 572b1dde03

Change-Id: Ic2993a4692105f18d24573297479ce7f57964dea

7 years agoMerge "Match __bos0 to __pass_object_size0 in FORTIFY"
Treehugger Robot [Mon, 13 Feb 2017 19:39:28 +0000 (19:39 +0000)]
Merge "Match __bos0 to __pass_object_size0 in FORTIFY"

7 years agoDo not use std::vector in android_namespace_t::is_accessible
Dimitry Ivanov [Mon, 13 Feb 2017 18:49:40 +0000 (10:49 -0800)]
Do not use std::vector in android_namespace_t::is_accessible

Avoid constructing vector and walking all the parents of a soinfo
to check if it is accessible. The most likely scenario that the
very first check returns true.

Bug: http://b/35313368
Test: bionic-unit-tests --gtest_filter=dl*:Dl*
Change-Id: I06c65cf61ed1c30e5e454a169de4c41038863587

7 years agoMake libc.so global
Dimitry Ivanov [Mon, 13 Feb 2017 17:17:21 +0000 (09:17 -0800)]
Make libc.so global

This is a way to avoid loading multiple libc.so
when non-default namespace search path includes
/system/lib. This is used by some art tests.

Bug: http://b/26833548
Test: m -j32 test-art-target-run-test-004-JniTest
Change-Id: I919d3a0560bd3c9ac19df21a235641a667f0f017

7 years agoMerge "Replace public library list with shared lib sonames (part 2/2)" am: 2cb4dfbb8c...
Dimitry Ivanov [Sat, 11 Feb 2017 19:37:58 +0000 (19:37 +0000)]
Merge "Replace public library list with shared lib sonames (part 2/2)" am: 2cb4dfbb8c am: ae80d78b5b
am: f3dde6d7e9

Change-Id: Ie589574e4e49949b8384d0924f2d4647b277f1ba