Loading libs/binder/Parcel.cpp +5 −0 Original line number Original line Diff line number Diff line Loading @@ -418,6 +418,11 @@ status_t Parcel::setData(const uint8_t* buffer, size_t len) status_t Parcel::appendFrom(const Parcel *parcel, size_t offset, size_t len) status_t Parcel::appendFrom(const Parcel *parcel, size_t offset, size_t len) { { if (parcel->isForRpc() != isForRpc()) { ALOGE("Cannot append Parcel of one format to another."); return BAD_TYPE; } status_t err; status_t err; const uint8_t *data = parcel->mData; const uint8_t *data = parcel->mData; const binder_size_t *objects = parcel->mObjects; const binder_size_t *objects = parcel->mObjects; Loading libs/binder/tests/binderRpcTest.cpp +13 −0 Original line number Original line Diff line number Diff line Loading @@ -406,6 +406,19 @@ TEST_P(BinderRpc, TransactionsMustBeMarkedRpc) { EXPECT_EQ(BAD_TYPE, proc.rootBinder->transact(IBinder::PING_TRANSACTION, data, &reply, 0)); EXPECT_EQ(BAD_TYPE, proc.rootBinder->transact(IBinder::PING_TRANSACTION, data, &reply, 0)); } } TEST_P(BinderRpc, AppendSeparateFormats) { auto proc = createRpcTestSocketServerProcess(1); Parcel p1; p1.markForBinder(proc.rootBinder); p1.writeInt32(3); Parcel p2; EXPECT_EQ(BAD_TYPE, p1.appendFrom(&p2, 0, p2.dataSize())); EXPECT_EQ(BAD_TYPE, p2.appendFrom(&p1, 0, p1.dataSize())); } TEST_P(BinderRpc, UnknownTransaction) { TEST_P(BinderRpc, UnknownTransaction) { auto proc = createRpcTestSocketServerProcess(1); auto proc = createRpcTestSocketServerProcess(1); Parcel data; Parcel data; Loading Loading
libs/binder/Parcel.cpp +5 −0 Original line number Original line Diff line number Diff line Loading @@ -418,6 +418,11 @@ status_t Parcel::setData(const uint8_t* buffer, size_t len) status_t Parcel::appendFrom(const Parcel *parcel, size_t offset, size_t len) status_t Parcel::appendFrom(const Parcel *parcel, size_t offset, size_t len) { { if (parcel->isForRpc() != isForRpc()) { ALOGE("Cannot append Parcel of one format to another."); return BAD_TYPE; } status_t err; status_t err; const uint8_t *data = parcel->mData; const uint8_t *data = parcel->mData; const binder_size_t *objects = parcel->mObjects; const binder_size_t *objects = parcel->mObjects; Loading
libs/binder/tests/binderRpcTest.cpp +13 −0 Original line number Original line Diff line number Diff line Loading @@ -406,6 +406,19 @@ TEST_P(BinderRpc, TransactionsMustBeMarkedRpc) { EXPECT_EQ(BAD_TYPE, proc.rootBinder->transact(IBinder::PING_TRANSACTION, data, &reply, 0)); EXPECT_EQ(BAD_TYPE, proc.rootBinder->transact(IBinder::PING_TRANSACTION, data, &reply, 0)); } } TEST_P(BinderRpc, AppendSeparateFormats) { auto proc = createRpcTestSocketServerProcess(1); Parcel p1; p1.markForBinder(proc.rootBinder); p1.writeInt32(3); Parcel p2; EXPECT_EQ(BAD_TYPE, p1.appendFrom(&p2, 0, p2.dataSize())); EXPECT_EQ(BAD_TYPE, p2.appendFrom(&p1, 0, p1.dataSize())); } TEST_P(BinderRpc, UnknownTransaction) { TEST_P(BinderRpc, UnknownTransaction) { auto proc = createRpcTestSocketServerProcess(1); auto proc = createRpcTestSocketServerProcess(1); Parcel data; Parcel data; Loading