Commit Graph

20430 Commits

Author SHA1 Message Date
Christopher Ferris 8b474de4ac Set groups before dropping privileges.
The code for dumping tombstones tries to read the log data. This was
silently failing after the change to drop root privileges. Fix this
by explicitly setting the groups allowed before dropping privileges.

Bug: 28590884
(cherry picked from commit edc2380109)

Change-Id: I225365edccb11f8752027566fd42f3b10ce10260
2016-05-05 15:47:16 -07:00
Treehugger Robot 830561bb2b Merge "Fix null pointer dereference." 2016-05-05 22:44:04 +00:00
Christopher Ferris 157f2725ec Fix null pointer dereference.
In the function dump_thread_info, if /proc/<PID>/comm is unreadable, then
threadname will be used in a strncmp causing a crash. The fix is to
avoid the check if threadname is null.

Bug: 28615417
(cherry picked from commit 039976e553)

Change-Id: I1e61431b1549ecfdc49a72cbf193a364069cda79
2016-05-05 14:21:25 -07:00
Treehugger Robot d494665822 Merge "Fix problem with wait_for_gdb." 2016-05-05 20:27:30 +00:00
Daniel Micay 83c0c7b2ab enable integer sanitizer for sdcard service
The previous false positive fix (df9c4a01) is enough to pass tests, and
it doesn't appear that there are any remaining issues.

Change-Id: Ib9812f1201ff0cd2ae8c8371737754fc328765b5
2016-05-05 16:03:32 -04:00
Christopher Ferris 99235e9967 Fix problem with wait_for_gdb.
When someone enables wait_for_gdb, activity manager will kill the
stopped process before a developer can attach to the process. To
allow debugging in this case, change the code to only contact the
activity manager right before continuing the process that is
crashing.

Also, modify the conditions under which to do a gdb attach. The previous
code did a partial attach if perform_dump failed. The new version simply
allows an attach regardless of whether perform_dump passes or fails.

Bug: 28409358
(cherry picked from commit 9818bd2bbe)

Change-Id: I42f464b69332748e16b07d9d00f44b3aa26ce8b7
2016-05-05 10:50:39 -07:00
Rubin Xu 9c2f803e9d Return correct length from pmsgRead()
Bug: 28610769
Change-Id: I38cac786ca43ef8d9530f4e2e5a0bdd4cc3bccef
2016-05-05 16:50:44 +01:00
Elliott Hughes 31701d6074 Merge "Lose ps to toybox." 2016-05-05 00:29:12 +00:00
Treehugger Robot ad717d6566 Merge "nativeloader: Add CloseNativeLibrary() method" 2016-05-04 23:38:55 +00:00
Dimitry Ivanov 7a1f9518f7 nativeloader: Add CloseNativeLibrary() method
This method is called by art on UnloadNativeLibraries()

Bug: http://b/28406866
Change-Id: Ibccff93c83d6ccd3d0a1c0294a64b09281b4e05e
(cherry picked from commit 09a516bf16)
2016-05-04 15:26:33 -07:00
Elliott Hughes eea3c0e601 Lose ps to toybox.
Change-Id: I890a453533e1b3066169738f55314f8813285c17
2016-05-04 15:20:02 -07:00
Elliott Hughes f9f76146a1 Merge "Remove <utils/ashmem.h>." 2016-05-04 21:48:21 +00:00
Elliott Hughes 6d7823a54e Remove <utils/ashmem.h>.
Not to be confused with <cutils/ashmem.h> or <linux/ashmem.h>, one or other
of which is what you should be using instead.

Change-Id: Ie158530591b28b94c2cda9e2686cae56b7aeb1a3
2016-05-04 13:33:20 -07:00
Michael Ryleev 09167c2f5c Merge changes I80cdf61e,I9885cc8d,I47c2095a,Id240b1b3,I3e468c10
* changes:
  trusty: storage: implement storage proxy daemon
  trusty: storage: add trusty interface header
  trusty: add trusty-base.mk
  trusty: add keymaster module
  trusty: add gatekeeper module
2016-05-03 19:56:08 +00:00
Michael Ryleev f59560df2c trusty: storage: implement storage proxy daemon
Change-Id: I80cdf61e5ced00dd32a3e35eb81969d25b624df9
2016-05-02 15:12:01 -07:00
Andres Morales 117b1307d9 trusty: storage: add trusty interface header
Change-Id: I9885cc8d4204690690b384bbf209f82cb64f9265
2016-05-02 15:12:01 -07:00
Michael Ryleev aedf9af3ec trusty: add trusty-base.mk
The trusty-base.mk should be included by devices that use
Trusty TEE to pull in the baseline set of Trusty specific modules.

Change-Id: I47c2095a21f47a40d390c9d5426380ad9507a708
2016-05-02 15:12:01 -07:00
Andres Morales 95989dbb0f trusty: add keymaster module
Change-Id: Id240b1b33e07d4cb3ea9d188014701e3d2b3c477
2016-05-02 15:12:01 -07:00
Andres Morales 1571f47f3c trusty: add gatekeeper module
Change-Id: I3e468c103326e6a9147dbed6c803748ffd5e207a
2016-05-02 15:12:01 -07:00
Dimitry Ivanov 27d75e8bc1 Merge "nativeloader: Add Reset capabilities" 2016-05-02 21:31:49 +00:00
Greg Hackmann e94c92cd48 SystemClock: elapsedRealtimeNano() should use clock_gettime() on Linux
We've removed the Android alarm driver from our supported kernels.
clock_gettime(CLOCK_BOOTTIME) has been a viable option since 2.6.39, so
there's no need for the legacy code path anymore.

We can use this on Linux hosts too, since no one should be building
Android on hosts with kernels that old.

Bug: 28357356

Change-Id: I0aa164383c95e77c53d2c85883d83f85d4abc7b1
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2016-05-02 14:00:02 -07:00
Greg Hackmann 340079df26 SystemClock: add test
Bug: 28357356

Change-Id: Idf66c048bda09cd8cb08adf89ed0edd3770c4e39
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2016-05-02 13:59:58 -07:00
Dimitry Ivanov 911472da85 nativeloader: Add Reset capabilities
In the case when VM is restarted all weak references
from the old VM become invalid. In such event NativeLoader
needs to clear the list of classloaders from old VM.

Bug: http://b/28453840
Bug: http://b/28449304
Change-Id: I2268c1e21cf940c57ddc5f0312f56b71aa702134
(cherry picked from commit be4ca3afc0)
2016-05-02 13:35:32 -07:00
Elliott Hughes bfd6a0f24d Merge "Remove useless #include." 2016-04-30 17:56:26 +00:00
Elliott Hughes c4248ae9a1 Remove useless #include.
Bug: http://b/28432688
Change-Id: I8982f42b2bf2305168a4ba167e422173f35c69c2
2016-04-30 09:10:07 -07:00
Elliott Hughes b9ce0f10f3 Merge "toolbox ps: replace strcpy with snprintf." 2016-04-30 16:07:10 +00:00
Elliott Hughes defd249d3d toolbox ps: replace strcpy with snprintf.
Change-Id: I0fdf9a8d5ab15bcff06cca3f3e7024ab76b219d9
2016-04-29 22:10:40 -07:00
Chih-hung Hsieh 7bdd6a8b5a Merge "Fix google-explicit-constructor warnings." 2016-04-30 05:10:05 +00:00
Treehugger Robot 3b9ba98e9e Merge changes Ied2ab927,I16245af7
* changes:
  Silently ignore duplicate heap entries
  Handle segfaults while walking native heap
2016-04-29 23:16:39 +00:00
Chih-Hung Hsieh 1c563d96f0 Fix google-explicit-constructor warnings.
Bug: 28341362
Change-Id: I4504e98a8db31e0edcbe63c23f9af43eb13e9d86
2016-04-29 15:44:04 -07:00
Colin Cross 583a250830 Silently ignore duplicate heap entries
Vendor blobs on ryu mprotect heap pages, causing a single chunk mapping
to appear as multiple mappings.  The heap iterator has to expand the
requested range to cover the beginning of the chunk to find the chunk
metadata, which will lead to duplicate identical allocations being
reported from iterating over each of the split mappings.  Silently
ignore identical allocations, and only warn on non-identical allocations
that overlap.

Bug: 28269332
Change-Id: Ied2ab9270f65d00a887c7ce1a93fbf0617d69be0
(cherry picked from commit cecd64012d)
2016-04-29 15:14:06 -07:00
Colin Cross 0965c0247b Handle segfaults while walking native heap
Vendor blobs on ryu mprotect heap pages, causing segfaults when dumping
unreachable memory.  Handle segfaults within HeapWalker by mapping a
zero page over any unreadable pages.  HeapWalker runs in the forked
process, so the mapping will not affect the original process.

Bug: 28269332
Change-Id: I16245af722123f2ad467cbc6f245a70666c55544
(cherry picked from commit ba5d9ff6d9)
2016-04-29 15:14:06 -07:00
Treehugger Robot 7da38d6cb4 Merge "logcat: confirm -g result after -c" 2016-04-29 20:07:22 +00:00
Treehugger Robot 2123c6fc30 Merge "Add empty <util.h> to build BSD source." 2016-04-29 19:46:43 +00:00
Elliott Hughes 36abd48c6a Add empty <util.h> to build BSD source.
Hopefully this will let us remove the empty file from bionic. It shouldn't
be there because -- unlike BSD -- we don't actually have a libutil.

Change-Id: I7e3042ca120aafa877709797866b52ac62675870
2016-04-29 11:53:29 -07:00
Mark Salyzyn e7e5f1b6ae logcat: confirm -g result after -c
Bug: 28451229
Change-Id: I43a1721ae991cc1316335ba4b3b868b904926d42
2016-04-29 11:33:26 -07:00
Elliott Hughes 17f3b1bad7 Merge "Use more std::string in fastboot." 2016-04-29 17:47:30 +00:00
Treehugger Robot fc80b22752 Merge "liblog: O_CLOEXEC flag on opens" 2016-04-29 15:35:12 +00:00
Elliott Hughes 2810d00dd9 Use more std::string in fastboot.
Change-Id: Ic8c77eac1e0088627ab650050d9c97c5749e5c39
2016-04-29 08:30:13 -07:00
Mark Salyzyn 78786da116 liblog: O_CLOEXEC flag on opens
Bug: 28455828
Change-Id: Ic00101a6192aab7271cb0c3461e249a77d7f29ed
2016-04-29 07:52:36 -07:00
Mark Salyzyn 7f18790bd7 Merge "liblog: logcat -g readable size wrong" 2016-04-29 14:44:03 +00:00
Mark Salyzyn ccfb244b36 liblog: logcat -g readable size wrong
Bug: 28451229
Change-Id: I4bbc2bed933d69416c23cc7af617be3fb55d0b62
2016-04-29 07:39:51 -07:00
Treehugger Robot 94b0f3763f Merge "ueventd: relabel block devices nodes when processing subsequent add events" 2016-04-28 12:04:24 +00:00
Mihai Serban 24a3cbfa73 ueventd: relabel block devices nodes when processing subsequent add events
There is a race in ueventd's coldboot procedure that permits creation
of device block nodes before platform devices are registered. This happens
when the kernel sends events for adding block devices during ueventd's
coldboot /sys walk.
In this case the device node links used to compute the SELinux context
are not known and the node is created under the generic context:
u:object_r:block_device:s0.
A second add event for block device nodes is triggered after the platform
devices are handled by ueventd and the SELinux context is correctly computed
but the mknod call fails because the node already exists. This patch handles
this error case and updates the node's security context.

The race is introduced by the uevent sent from the sdcard device probe
function. The issue appears when this uevent is triggered during ueventd's
coldboot procedure but before the /sys/devices recursive walk reached the
corresponding sdcard platform device path.
The backtrace looks something like:
1. ueventd_main()
2. device_init()
3. coldboot("/sys/devices");
4. do_coldboot()
5. handle_device_fd()
6. handle_device_event()
6.1 handle_block_device_event()
6.2 handle_platform_device_event()

Because handle_device_fd() reads all events from the netlink socket it may
handle the add events for the sdcard partition nodes send occasionally by the
kernel during coldboot /sys walk procedure.
If handle_device_event() continues with handle_block_device_event()
before handle_platform_device_event() registers the sdcard platform device then
handle_block_device_event() will create device nodes without knowing all block
device symlinks (get_block_device_symlinks()):
1. handle_device(path=/dev/block/mmcblk0p3, links = NULL)
2. make_device(path=/dev/block/mmcblk0p3, links = NULL)
3. selabel_lookup_best_match(path=/dev/block/mmcblk0p3, links = NULL)
  returns the default context (u:object_r:block_device:s0) for
  /dev/block/mmcblk0p3 instead of more specific context like:
  u:object_r:boot_block_device:s0
4. setfscreatecon(u:object_r:block_device:s0)
5. mknod(/dev/block/mmcblk0p3)

So the node is create with the wrong context. Afterwards the coldboot /sys walk
continues and make_device() will be called with correct path and links.
But even if the secontext is computed correctly this time it will not be
applied to the device node because mknod() fails.
I see this issue randomly appearing (one time in 10 reboots) on a Minnoboard
Turbot with external sdcard as the boot device.

BUG=28388946

Change-Id: I96e239af29d82b753e5d349b3ecefaad09edee87
Signed-off-by: Mihai Serban <mihai.serban@intel.com>
2016-04-28 10:45:03 +00:00
Treehugger Robot 3abd03232e Merge "Change remaining Android logging macros to use C99 varidaic syntax" 2016-04-27 22:39:20 +00:00
Alex Vakulenko 3b0d65ad10 Change remaining Android logging macros to use C99 varidaic syntax
Most of the system/core/include/log/log.h file uses the C99 syntax of
variadic macros (that is, '...' in parameter list and __VA_ARGS__
in arguments). Except for andoid_printLog and android_printAssert
which still uses GCC custom extension syntax.

Switched the remaining macros to use C99 syntax. GCC extension syntax
makes my editor's code parser puke.

BUG: None
Change-Id: Ia6ebc0f2044b64182c425b179da0229c7046be4a
2016-04-27 14:44:40 -07:00
Dimitry Ivanov 6d28ae7b0d Merge "native_loader: Use ANDROID_ROOT environment variable" 2016-04-27 18:24:33 +00:00
Dimitry Ivanov 581beebc98 Merge "Enable namespaces for all target sdk versions" 2016-04-27 18:24:04 +00:00
Treehugger Robot bf1767fbed Merge "Fix google-explicit-constructor warnings." 2016-04-27 15:44:07 +00:00
Treehugger Robot c2964402b6 Merge "adb: decrease the number of fds used in fd_count test." 2016-04-26 23:55:11 +00:00