Commit graph

2164 commits

Author SHA1 Message Date
Hans Boehm
a1709d5269 Merge "Make RefBase more robust and debuggable" am: daac359be7 am: 7bf3d21fde am: 7dddf9433c
am: 2d3545fe82

Change-Id: I65537ec0db45b05f96dae43b8f4a91bd4af2d39b
2016-08-25 00:14:54 +00:00
Hans Boehm
2d3545fe82 Merge "Make RefBase more robust and debuggable" am: daac359be7 am: 7bf3d21fde
am: 7dddf9433c

Change-Id: Ia8bdef250b29d964a9ab07c450da31a368bb3143
2016-08-24 23:52:14 +00:00
Hans Boehm
7dddf9433c Merge "Make RefBase more robust and debuggable" am: daac359be7
am: 7bf3d21fde

Change-Id: I643c4bd38062b80d382c50ed161f5440f35c1dd9
2016-08-24 23:49:14 +00:00
Hans Boehm
daac359be7 Merge "Make RefBase more robust and debuggable" 2016-08-24 23:36:13 +00:00
Andy Hung
e131ea2a25 Fix Mutex::timedLock to properly handle relative time am: 604ba48220 am: 708b9d118a am: 47e5ca61e2
am: 8ec6753d61

Change-Id: Ia281e33c13df240baf0c2bb187b0c13fefdeff8e
2016-08-24 23:08:27 +00:00
Andy Hung
8ec6753d61 Fix Mutex::timedLock to properly handle relative time am: 604ba48220 am: 708b9d118a
am: 47e5ca61e2

Change-Id: I5c351fbdc485acbcb33426b99ea6b900519ee0e3
2016-08-24 22:50:00 +00:00
Andy Hung
604ba48220 Fix Mutex::timedLock to properly handle relative time
Bug: 31008450
Change-Id: Ie6c17e17b7a8c3d8a087c47be535e9d04f285380
2016-08-24 22:29:11 +00:00
Mark Salyzyn
0b6f5ea819 Merge "liblog: add __android_log_close()" am: 812d1c7ea2 am: 6322efe522 am: ed421af68d
am: e5bda4d0ec

Change-Id: Ie8f6b6f866575f830ea3526d39fbedcb4e9795b3
2016-08-24 16:18:56 +00:00
Mark Salyzyn
309122d798 Merge "logger: validate hdr_size field in logger entry" am: fcf7ab8b1b am: 2d562c9dce am: 098b5887c6
am: af3623281f

Change-Id: I517e59cd638b8d1525b1ae6798af50bd8ca6f1ff
2016-08-24 16:18:56 +00:00
Mark Salyzyn
e60a17a9db Merge "libcutils: Add ashmem_valid() function" am: d00c7470ea am: 8b1f7b595c am: da07f7880c
am: 8e5cb037c4

Change-Id: Ic2a5ed0ddc1c506d486a3dd5c86880b6c181b5b4
2016-08-24 16:18:55 +00:00
Mark Salyzyn
e5bda4d0ec Merge "liblog: add __android_log_close()" am: 812d1c7ea2 am: 6322efe522
am: ed421af68d

Change-Id: Ifacd3de810c30a9b79cb262ab4c2432d8b1c0791
2016-08-24 16:10:09 +00:00
Mark Salyzyn
af3623281f Merge "logger: validate hdr_size field in logger entry" am: fcf7ab8b1b am: 2d562c9dce
am: 098b5887c6

Change-Id: I4d067039a766e7079a91eb56d2ffb8d68aba58b5
2016-08-24 16:10:08 +00:00
Mark Salyzyn
ed421af68d Merge "liblog: add __android_log_close()" am: 812d1c7ea2
am: 6322efe522

Change-Id: Ib61d4ec5102fcfb12c48250c019fcdf019c2ffc5
2016-08-24 16:07:39 +00:00
Mark Salyzyn
098b5887c6 Merge "logger: validate hdr_size field in logger entry" am: fcf7ab8b1b
am: 2d562c9dce

Change-Id: I5721e8614079a04c2dc364304d0ffed10d74be90
2016-08-24 16:07:38 +00:00
Mark Salyzyn
6322efe522 Merge "liblog: add __android_log_close()"
am: 812d1c7ea2

Change-Id: I2ba5ed22e78564a864bab6b550b6d2bd2609a629
2016-08-24 16:05:05 +00:00
Mark Salyzyn
2d562c9dce Merge "logger: validate hdr_size field in logger entry"
am: fcf7ab8b1b

Change-Id: Ic88fe616256ab4949040771d3bed1dfb823ab981
2016-08-24 16:05:04 +00:00
Treehugger Robot
812d1c7ea2 Merge "liblog: add __android_log_close()" 2016-08-24 15:58:48 +00:00
Treehugger Robot
fcf7ab8b1b Merge "logger: validate hdr_size field in logger entry" 2016-08-24 15:56:23 +00:00
Mark Salyzyn
8e5cb037c4 Merge "libcutils: Add ashmem_valid() function" am: d00c7470ea am: 8b1f7b595c
am: da07f7880c

Change-Id: I3a4cf9a2cd848aae04ec3e88ae1e50a51774cd5f
2016-08-24 15:54:08 +00:00
Mark Salyzyn
da07f7880c Merge "libcutils: Add ashmem_valid() function" am: d00c7470ea
am: 8b1f7b595c

Change-Id: I1be0fc5d74c609ec42578c29c7af9d897708f8c6
2016-08-24 15:51:08 +00:00
Mark Salyzyn
8b1f7b595c Merge "libcutils: Add ashmem_valid() function"
am: d00c7470ea

Change-Id: Ib09d3ee7bb131c30f59ea273f357c045394206fb
2016-08-24 15:48:55 +00:00
Mark Salyzyn
ee431112ff libcutils: Add ashmem_valid() function
Bug: 30310689
Change-Id: I14c52c5d52745a725799652b87c86281ac214899
2016-08-23 15:29:28 -07:00
Mark Salyzyn
df7a4c6bae liblog: add __android_log_close()
Bug: 30963384
Change-Id: I901e6ac2cc3c601bbecc2d64e00a98e2ab448210
2016-08-23 15:25:03 -07:00
Mark Salyzyn
305374cf0f logger: validate hdr_size field in logger entry
- check hdr_size to make sure it is in the expected range
  from sizeof entry_v1 to entry (entry_v4).
- alter msg() method to report NULL on invalid hdr_size
- alter all users of msg() method.

Bug: 30947841
Change-Id: I9bc1740d7aa9f37df5be966c18de1fb9de63d5dd
2016-08-23 14:51:50 -07:00
Connor O'Brien
7d7f5399d4 Fix vold vulnerability in FrameworkListener am: 470484d2a2 am: e9e046df6c am: 109024f74a am: b906ad88b9 am: 2fadbb93a4 am: e04054d9bb am: 9745b11db1 am: 2f78b2c3d6 am: 2b5e6d8ffc am: 2427a462c0 am: 6b155c1cc4 am: 2f16eeede6
am: 233c9902cf

Change-Id: Idc2f2b967a890489769cda203d8ed7b73eb6a303
2016-08-19 22:57:38 +00:00
Connor O'Brien
233c9902cf Fix vold vulnerability in FrameworkListener am: 470484d2a2 am: e9e046df6c am: 109024f74a am: b906ad88b9 am: 2fadbb93a4 am: e04054d9bb am: 9745b11db1 am: 2f78b2c3d6 am: 2b5e6d8ffc am: 2427a462c0 am: 6b155c1cc4
am: 2f16eeede6

Change-Id: I3d2fdfc10f91080ca32aa6557b13391355427edc
2016-08-19 22:53:32 +00:00
Connor O'Brien
af8d67e032 Fix vold vulnerability in FrameworkListener am: 470484d2a2 am: e9e046df6c am: 109024f74a am: b906ad88b9 am: 2fadbb93a4 am: e04054d9bb am: 9745b11db1 am: 2f78b2c3d6 am: 2b5e6d8ffc am: 2427a462c0 am: 6b155c1cc4
am: 2f16eeede6

Change-Id: I272469151a3680acfc2203a0f3aac79a319a1d06
2016-08-19 22:53:32 +00:00
Connor O'Brien
2f16eeede6 Fix vold vulnerability in FrameworkListener am: 470484d2a2 am: e9e046df6c am: 109024f74a am: b906ad88b9 am: 2fadbb93a4 am: e04054d9bb am: 9745b11db1 am: 2f78b2c3d6 am: 2b5e6d8ffc am: 2427a462c0
am: 6b155c1cc4

Change-Id: Ie6c2bcee1deacb94259a6153097757674fa19251
2016-08-19 22:50:00 +00:00
Connor O'Brien
2f78b2c3d6 Fix vold vulnerability in FrameworkListener am: 470484d2a2 am: e9e046df6c am: 109024f74a am: b906ad88b9 am: 2fadbb93a4 am: e04054d9bb
am: 9745b11db1

Change-Id: I61f685976803f51db9ba85729554fc14efaa4b2c
2016-08-19 22:36:29 +00:00
Connor O'Brien
9745b11db1 Fix vold vulnerability in FrameworkListener am: 470484d2a2 am: e9e046df6c am: 109024f74a am: b906ad88b9 am: 2fadbb93a4
am: e04054d9bb

Change-Id: Ia5f46e5b9622946ca0e44fbe7399729807d2d08a
2016-08-19 22:34:46 +00:00
Connor O'Brien
2fadbb93a4 Fix vold vulnerability in FrameworkListener am: 470484d2a2 am: e9e046df6c am: 109024f74a
am: b906ad88b9

Change-Id: Ida2b33bd1db284dfa8ad3f130219481a92785e97
2016-08-19 22:14:57 +00:00
Connor O'Brien
b906ad88b9 Fix vold vulnerability in FrameworkListener am: 470484d2a2 am: e9e046df6c
am: 109024f74a

Change-Id: Ia6e8dca36bc28d442a6e374ecf033b79176f4b93
2016-08-19 22:11:27 +00:00
Connor O'Brien
109024f74a Fix vold vulnerability in FrameworkListener am: 470484d2a2
am: e9e046df6c

Change-Id: I8f2452782817ddf03051af08e70ba9d4c4fa578a
2016-08-19 22:08:22 +00:00
Connor O'Brien
470484d2a2 Fix vold vulnerability in FrameworkListener
Modify FrameworkListener to ignore commands that exceed the maximum
buffer length and send an error message.

Bug: 29831647
Change-Id: I9e57d1648d55af2ca0191bb47868e375ecc26950
Signed-off-by: Connor O'Brien <connoro@google.com>
(cherry picked from commit baa126dc15)
2016-08-19 17:05:25 +00:00
Dmitriy Filchenko
6e2743ec04 Merge "Remove process_name.c" am: e5b7ad1c39 am: 97e3cb7074 am: de9e6fb4b0
am: ceca7afbc7

Change-Id: I1289ed62739c0972497cd4438c99a7c06a179f73
2016-08-19 01:39:06 +00:00
Dmitriy Filchenko
ceca7afbc7 Merge "Remove process_name.c" am: e5b7ad1c39 am: 97e3cb7074
am: de9e6fb4b0

Change-Id: I402ab55567532786d61412e7c567e2da5fbc800b
2016-08-19 01:36:31 +00:00
Dmitriy Filchenko
de9e6fb4b0 Merge "Remove process_name.c" am: e5b7ad1c39
am: 97e3cb7074

Change-Id: I8ddeceadedd4ca689d96f3a854ba34f31d16683f
2016-08-19 01:33:31 +00:00
Dmitriy Filchenko
97e3cb7074 Merge "Remove process_name.c"
am: e5b7ad1c39

Change-Id: I8f98f5fe9ff526ed8780971eddef128ed46de271
2016-08-19 01:30:34 +00:00
Dmitriy Filchenko
1bb49f483b Remove process_name.c
BUG: 29824203

Change-Id: I88d67cafb8ec0c4eea3db047bac0671de698ba02
2016-08-18 23:54:46 +00:00
Connor O'Brien
baa126dc15 Fix vold vulnerability in FrameworkListener
Modify FrameworkListener to ignore commands that exceed the maximum
buffer length and send an error message.

Bug: 29831647
Change-Id: I9e57d1648d55af2ca0191bb47868e375ecc26950
Signed-off-by: Connor O'Brien <connoro@google.com>
2016-08-18 14:52:39 -07:00
Hans Boehm
23c857ebd6 Make RefBase more robust and debuggable
This prevents two different kinds of client errors from causing
undetected memory corruption, and helps with the detection of others:

1. We no longer deallocate objects when the weak count goes to zero
and there have been no strong references.  This otherwise causes
us to return a garbage object from a constructor if the constructor
allocates and deallocates a weak pointer to this. And we do know
that clients allocate such weak pointers in constructors and their
lifetime is hard to trace.

2. We abort if a RefBase object is explicitly destroyed while
the weak count is nonzero.  Otherwise a subsequent decrement
would cause a write to potentially reallocated memory.

3. We check counter values returned by atomic decrements for
plausibility, and fail immediately if they are not plausible.

We unconditionally log any cases in which 1 changes behavior
from before. We abort in cases in which 2 changes behavior, since
those reflect clear bugs.
In case 1, a log message now indicates a possible leak. We have
not seen such a message in practice.

The third point introduces a small amount of overhead into the
reference count decrement path. But this should be negligible
compared to the actual decrement cost.

Add a test for promote/attemptIncStrong that tries to check for
both (1) above and concurrent operation of attemptIncStrong.

Add some additional warnings and explanations to the RefBase
documentation.

Bug: 30503444
Bug: 30292291
Bug: 30292538

Change-Id: Ida92b9a2e247f543a948a75d221fbc0038dea66c
2016-08-13 11:17:51 -07:00
Hans Boehm
9fb33735be Merge "Improve RefBase documentation, especially for clients." am: 0f39fe22ae am: df6c464e9a am: f997434b06
am: e725c79831

Change-Id: Idbc29ea28c0a63a35340b052a30b0106f8eae46d
2016-08-10 16:33:00 +00:00
Hans Boehm
e725c79831 Merge "Improve RefBase documentation, especially for clients." am: 0f39fe22ae am: df6c464e9a
am: f997434b06

Change-Id: I6eb6670d6b73c9a77a56294a9bdca9229bdc98a3
2016-08-10 16:29:59 +00:00
Hans Boehm
f997434b06 Merge "Improve RefBase documentation, especially for clients." am: 0f39fe22ae
am: df6c464e9a

Change-Id: I8fa12835ff648d78c68265facb5b63ca7b1eab6a
2016-08-10 16:26:59 +00:00
Hans Boehm
df6c464e9a Merge "Improve RefBase documentation, especially for clients."
am: 0f39fe22ae

Change-Id: I804989b192142dc9d69ca36f0122079822625e7e
2016-08-10 16:24:01 +00:00
Hans Boehm
0f39fe22ae Merge "Improve RefBase documentation, especially for clients." 2016-08-10 16:16:22 +00:00
Hans Boehm
9ba7192c1f Improve RefBase documentation, especially for clients.
Add basic interface documentation to RefBase.h.

Much, but not all, of this is cut-and-pasted from an email message
from Mathias Agopian. The rest is reconstructed from the code.

Delete some, now redundant, text from Refbase.cpp, and add a bit
more about the implementation strategy.

Some minor fixes to internal comments.

Bug: 30292291
Change-Id: I56518ae5553bc6de0cc2331778e7fcf2e6c4fd87
2016-08-09 15:12:19 -07:00
Chih-Hung Hsieh
94aa3aaee0 Merge "Fix google-explicit-constructor warnings in utils." am: 5b7e3b9a2a am: 4d031d6358 am: e1fff2572c
am: d8ced2029b

Change-Id: Ie0092027487b3089b6602c53fd73f6e95b881a85
2016-08-04 21:55:59 +00:00
Chih-Hung Hsieh
d8ced2029b Merge "Fix google-explicit-constructor warnings in utils." am: 5b7e3b9a2a am: 4d031d6358
am: e1fff2572c

Change-Id: I5c75363a555fd31aa587ca7cb5905e928148a19f
2016-08-04 21:53:19 +00:00
Chih-Hung Hsieh
e1fff2572c Merge "Fix google-explicit-constructor warnings in utils." am: 5b7e3b9a2a
am: 4d031d6358

Change-Id: I89352ced43afd415aefe2b8e45dd9fdd76dc0551
2016-08-04 21:51:20 +00:00