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

Commit c57796d8 authored by Android (Google) Code Review's avatar Android (Google) Code Review
Browse files

Merge change 7927

* changes:
  Fixed a bug in the parser.
parents 3f523594 c39173be
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -280,8 +280,9 @@ public class Metadata
        final int pin = parcel.dataPosition();  // to roll back in case of errors.
        final int size = parcel.readInt();

        if (parcel.dataAvail() < size || size < kMetaHeaderSize) {
            Log.e(TAG, "Bad size " + size);
        // Magic 4 below is for the int32 'size' just read.
        if (parcel.dataAvail() + 4 < size || size < kMetaHeaderSize) {
            Log.e(TAG, "Bad size " + size + " avail " + parcel.dataAvail() + " position " + pin);
            parcel.setDataPosition(pin);
            return false;
        }
+1 −6
Original line number Diff line number Diff line
@@ -56,15 +56,10 @@ public class MediaPlayerMetadataParserTest extends AndroidTestCase {
        assertEquals(0, mParcel.dataPosition());
    }

    // Check parsing of the parcel is successful. Before the
    // invocation of the parser a token is inserted. When the parser
    // returns, the parcel should be positioned at the token (check it
    // does not read too much data).
    // Check parsing of the parcel is successful.
    private void assertParse() throws Exception {
        mParcel.writeInt(kToken);
        mParcel.setDataPosition(0);
        assertTrue(mMetadata.parse(mParcel));
        assertEquals(kToken, mParcel.readInt());
    }

    // Write the number of bytes from the start of the parcel to the