summaryrefslogtreecommitdiff
path: root/libs/binder/IPCThreadState.cpp
diff options
context:
space:
mode:
author Arve Hjønnevåg <arve@android.com> 2014-03-10 18:06:10 +0000
committer Android Git Automerger <android-git-automerger@android.com> 2014-03-10 18:06:10 +0000
commit614019cd1f73686f9f5883cf0a7505887f44af26 (patch)
tree5f18f95df721648e1be97ce96e3967f298865412 /libs/binder/IPCThreadState.cpp
parent4ef023e9eb4c09bc121093a5a080b7cbbec2449b (diff)
parentd1c87d37025c49f6a47fe43328572da495ff04c1 (diff)
am d1c87d37: Merge changes I3432d9d3,I90fcf538,I64398603
* commit 'd1c87d37025c49f6a47fe43328572da495ff04c1': Binder: Fix some valgrind errors. Binder: Don't cast directly from a pointer to binder_uintptr_t Binder: Disable attemptIncStrongHandle
Diffstat (limited to 'libs/binder/IPCThreadState.cpp')
-rw-r--r--libs/binder/IPCThreadState.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/libs/binder/IPCThreadState.cpp b/libs/binder/IPCThreadState.cpp
index cb42549aab..35dba12217 100644
--- a/libs/binder/IPCThreadState.cpp
+++ b/libs/binder/IPCThreadState.cpp
@@ -635,6 +635,7 @@ void IPCThreadState::decWeakHandle(int32_t handle)
status_t IPCThreadState::attemptIncStrongHandle(int32_t handle)
{
+#if HAS_BC_ATTEMPT_ACQUIRE
LOG_REMOTEREFS("IPCThreadState::attemptIncStrongHandle(%d)\n", handle);
mOut.writeInt32(BC_ATTEMPT_ACQUIRE);
mOut.writeInt32(0); // xxx was thread priority
@@ -649,6 +650,11 @@ status_t IPCThreadState::attemptIncStrongHandle(int32_t handle)
#endif
return result;
+#else
+ (void)handle;
+ ALOGE("%s(%d): Not supported\n", __func__, handle);
+ return INVALID_OPERATION;
+#endif
}
void IPCThreadState::expungeHandle(int32_t handle, IBinder* binder)
@@ -898,6 +904,7 @@ status_t IPCThreadState::writeTransactionData(int32_t cmd, uint32_t binderFlags,
{
binder_transaction_data tr;
+ tr.target.ptr = 0; /* Don't pass uninitialized stack data to a remote process */
tr.target.handle = handle;
tr.code = code;
tr.flags = binderFlags;
@@ -915,7 +922,7 @@ status_t IPCThreadState::writeTransactionData(int32_t cmd, uint32_t binderFlags,
tr.flags |= TF_STATUS_CODE;
*statusBuffer = err;
tr.data_size = sizeof(status_t);
- tr.data.ptr.buffer = reinterpret_cast<binder_uintptr_t>(statusBuffer);
+ tr.data.ptr.buffer = reinterpret_cast<uintptr_t>(statusBuffer);
tr.offsets_size = 0;
tr.data.ptr.offsets = 0;
} else {