Loading libs/binder/Parcel.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -542,7 +542,7 @@ status_t Parcel::appendFrom(const Parcel* parcel, size_t offset, size_t len) { return BAD_VALUE; } if ((mDataSize+len) > mDataCapacity) { if ((mDataPos + len) > mDataCapacity) { // grow data err = growData(len); if (err != NO_ERROR) { Loading libs/binder/tests/binderParcelUnitTest.cpp +11 −0 Original line number Diff line number Diff line Loading @@ -197,6 +197,17 @@ TEST(Parcel, AppendPlainDataPartial) { ASSERT_EQ(2, p2.readInt32()); } TEST(Parcel, AppendWithBadDataPos) { Parcel p1; p1.writeInt32(1); p1.writeInt32(1); Parcel p2; p2.setDataCapacity(8); p2.setDataPosition(10000); EXPECT_EQ(android::BAD_VALUE, p2.appendFrom(&p1, 0, 8)); } TEST(Parcel, HasBinders) { sp<IBinder> b1 = sp<BBinder>::make(); Loading Loading
libs/binder/Parcel.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -542,7 +542,7 @@ status_t Parcel::appendFrom(const Parcel* parcel, size_t offset, size_t len) { return BAD_VALUE; } if ((mDataSize+len) > mDataCapacity) { if ((mDataPos + len) > mDataCapacity) { // grow data err = growData(len); if (err != NO_ERROR) { Loading
libs/binder/tests/binderParcelUnitTest.cpp +11 −0 Original line number Diff line number Diff line Loading @@ -197,6 +197,17 @@ TEST(Parcel, AppendPlainDataPartial) { ASSERT_EQ(2, p2.readInt32()); } TEST(Parcel, AppendWithBadDataPos) { Parcel p1; p1.writeInt32(1); p1.writeInt32(1); Parcel p2; p2.setDataCapacity(8); p2.setDataPosition(10000); EXPECT_EQ(android::BAD_VALUE, p2.appendFrom(&p1, 0, 8)); } TEST(Parcel, HasBinders) { sp<IBinder> b1 = sp<BBinder>::make(); Loading