Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 611b730b authored by Devin Moore's avatar Devin Moore
Browse files

Check mDataPos to see if the Parcel needs to grow

Flag: EXEMPT bug fix
Ignore-AOSP-First: security fix
Test: atest binderUnitTest
Bug: 399155883
Change-Id: I38b755ca3381cfca3300292873f763823fbf169b
parent d0503fa4
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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) {
+11 −0
Original line number Diff line number Diff line
@@ -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();