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

Commit 36824249 authored by Ray Essick's avatar Ray Essick
Browse files

Verify non-null format when starting AudioPlayer

check getFormat() return before dereferencing the pointer.  Also fix
stagefright test harness to check AudioPlayer::start() return value

Bug: 118620871
Test: poc
Change-Id: I5864d3a12c77141109d6cbbbe1a688ae88456202
parent 69c9844b
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -224,12 +224,16 @@ static void playSource(sp<MediaSource> &source) {
        player->setSource(rawSource);
        rawSource.clear();

        player->start(true /* sourceAlreadyStarted */);
        err = player->start(true /* sourceAlreadyStarted */);

        if (err == OK) {
            status_t finalStatus;
            while (!player->reachedEOS(&finalStatus)) {
                usleep(100000ll);
            }
        } else {
            fprintf(stderr, "unable to start playback err=%d (0x%08x)\n", err, err);
        }

        delete player;
        player = NULL;
+7 −0
Original line number Diff line number Diff line
@@ -118,6 +118,13 @@ status_t AudioPlayer::start(bool sourceAlreadyStarted) {
    }

    sp<MetaData> format = mSource->getFormat();

    if (format == NULL) {
        ALOGE("No metadata b/118620871");
        android_errorWriteLog(0x534e4554, "118620871");
        return BAD_VALUE;
    }

    const char *mime;
    bool success = format->findCString(kKeyMIMEType, &mime);
    CHECK(success);