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

Commit ba75239e authored by Andreas Huber's avatar Andreas Huber Committed by Android (Google) Code Review
Browse files

Merge "Make sure the ogg extractor returns appropriate error codes."

parents 496d94f2 f5c9995d
Loading
Loading
Loading
Loading
+13 −6
Original line number Diff line number Diff line
@@ -378,13 +378,20 @@ status_t MyVorbisExtractor::seekToOffset(off64_t offset) {

ssize_t MyVorbisExtractor::readPage(off64_t offset, Page *page) {
    uint8_t header[27];
    if (mSource->readAt(offset, header, sizeof(header))
    ssize_t n;
    if ((n = mSource->readAt(offset, header, sizeof(header)))
            < (ssize_t)sizeof(header)) {
        LOGV("failed to read %d bytes at offset 0x%016llx",
             sizeof(header), offset);
        LOGV("failed to read %d bytes at offset 0x%016llx, got %ld bytes",
             sizeof(header), offset, n);

        if (n < 0) {
            return n;
        } else if (n == 0) {
            return ERROR_END_OF_STREAM;
        } else {
            return ERROR_IO;
        }
    }

    if (memcmp(header, "OggS", 4)) {
        return ERROR_MALFORMED;
@@ -498,8 +505,8 @@ status_t MyVorbisExtractor::readNextPacket(MediaBuffer **out) {
                    packetSize);

            if (n < (ssize_t)packetSize) {
                LOGV("failed to read %d bytes at 0x%016llx",
                     packetSize, dataOffset);
                LOGV("failed to read %d bytes at 0x%016llx, got %ld bytes",
                     packetSize, dataOffset, n);
                return ERROR_IO;
            }