Loading libs/binder/Parcel.cpp +6 −1 Original line number Diff line number Diff line Loading @@ -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) Loading libs/binder/include/binder/Parcel.h +1 −0 Original line number Diff line number Diff line Loading @@ -86,6 +86,7 @@ public: // Writes the RPC header. status_t writeInterfaceToken(const String16& interface); status_t writeInterfaceToken(const char16_t* str, size_t len); // Parses the RPC header, returning true if the interface name // in the header matches the expected interface from the caller. Loading Loading
libs/binder/Parcel.cpp +6 −1 Original line number Diff line number Diff line Loading @@ -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) Loading
libs/binder/include/binder/Parcel.h +1 −0 Original line number Diff line number Diff line Loading @@ -86,6 +86,7 @@ public: // Writes the RPC header. status_t writeInterfaceToken(const String16& interface); status_t writeInterfaceToken(const char16_t* str, size_t len); // Parses the RPC header, returning true if the interface name // in the header matches the expected interface from the caller. Loading