summaryrefslogtreecommitdiff
path: root/libs/binder/Parcel.cpp
diff options
context:
space:
mode:
author Steven Moreland <smoreland@google.com> 2020-10-05 20:02:32 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2020-10-05 20:02:32 +0000
commitbf6faacc4cb6d816f195a42f1b2859970a804bbc (patch)
treec94fa5b252137c4f6b4b260eeaa087cb5a013530 /libs/binder/Parcel.cpp
parent1888cfce092b530d0bad89faed7b1480f7a74430 (diff)
parent944c37817d1157be0bd1d5017dfce1280ee58bcb (diff)
Merge "libbinder: writeInterfaceToken char16_t* variant" am: d0f1f1e365 am: 944c37817d
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1444735 Change-Id: I5e33c49e6f8b3d8e9d382675e37e9ee83061d6e3
Diffstat (limited to 'libs/binder/Parcel.cpp')
-rw-r--r--libs/binder/Parcel.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/libs/binder/Parcel.cpp b/libs/binder/Parcel.cpp
index 19f3606bfa..a9c19b3d86 100644
--- a/libs/binder/Parcel.cpp
+++ b/libs/binder/Parcel.cpp
@@ -527,14 +527,19 @@ constexpr int32_t kHeader = B_PACK_CHARS('S', 'Y', 'S', 'T');
// Write RPC headers. (previously just the interface token)
status_t Parcel::writeInterfaceToken(const String16& interface)
{
+ return writeInterfaceToken(interface.string(), interface.size());
+}
+
+status_t Parcel::writeInterfaceToken(const char16_t* str, size_t len) {
const IPCThreadState* threadState = IPCThreadState::self();
writeInt32(threadState->getStrictModePolicy() | STRICT_MODE_PENALTY_GATHER);
updateWorkSourceRequestHeaderPosition();
writeInt32(threadState->shouldPropagateWorkSource() ?
threadState->getCallingWorkSourceUid() : IPCThreadState::kUnsetWorkSource);
writeInt32(kHeader);
+
// currently the interface identification token is just its name as a string
- return writeString16(interface);
+ return writeString16(str, len);
}
bool Parcel::replaceCallingWorkSourceUid(uid_t uid)