summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2022-03-03 15:52:43 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2022-03-03 15:52:43 +0000
commitc7d0e95a5488d4f03dd81709e5593549af43ce68 (patch)
tree49e53d8edb1306152fb2f9fd44706ecf76464f9c
parent8a4e1aa5612c86362c1dd3c7d446c24d7a768ee2 (diff)
parent49c275353398928fe568fba90fa54465c5a9ebe6 (diff)
downloadnative-c7d0e95a5488d4f03dd81709e5593549af43ce68.tar.gz
Merge "libbinder: avoid ACCEPT_FDS on proxies"
-rw-r--r--libs/binder/Parcel.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/libs/binder/Parcel.cpp b/libs/binder/Parcel.cpp
index f84f639d2c..6a138e340f 100644
--- a/libs/binder/Parcel.cpp
+++ b/libs/binder/Parcel.cpp
@@ -200,7 +200,6 @@ status_t Parcel::flattenBinder(const sp<IBinder>& binder) {
}
flat_binder_object obj;
- obj.flags = FLAT_BINDER_FLAG_ACCEPTS_FDS;
int schedBits = 0;
if (!IPCThreadState::self()->backgroundSchedulingDisabled()) {
@@ -221,6 +220,7 @@ status_t Parcel::flattenBinder(const sp<IBinder>& binder) {
const int32_t handle = proxy ? proxy->getPrivateAccessor().binderHandle() : 0;
obj.hdr.type = BINDER_TYPE_HANDLE;
obj.binder = 0; /* Don't pass uninitialized stack data to a remote process */
+ obj.flags = 0;
obj.handle = handle;
obj.cookie = 0;
} else {
@@ -231,6 +231,7 @@ status_t Parcel::flattenBinder(const sp<IBinder>& binder) {
// override value, since it is set explicitly
schedBits = schedPolicyMask(policy, priority);
}
+ obj.flags = FLAT_BINDER_FLAG_ACCEPTS_FDS;
if (local->isRequestingSid()) {
obj.flags |= FLAT_BINDER_FLAG_TXN_SECURITY_CTX;
}
@@ -243,6 +244,7 @@ status_t Parcel::flattenBinder(const sp<IBinder>& binder) {
}
} else {
obj.hdr.type = BINDER_TYPE_BINDER;
+ obj.flags = 0;
obj.binder = 0;
obj.cookie = 0;
}