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

Commit c367ca17 authored by Marco Nelissen's avatar Marco Nelissen
Browse files

Fix a few potential crashes

Change-Id: Ib7bdfc1d5fff928570e4fec3f3d4e175f9656dd3
parent 66ffe1e6
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -216,6 +216,10 @@ status_t NuPlayer::GenericSource::initFromDataSource() {
        }

        sp<MetaData> meta = extractor->getTrackMetaData(i);
        if (meta == NULL) {
            ALOGE("no metadata for track %zu", i);
            return UNKNOWN_ERROR;
        }

        const char *mime;
        CHECK(meta->findCString(kKeyMIMEType, &mime));
@@ -1125,6 +1129,10 @@ sp<AMessage> NuPlayer::GenericSource::getTrackInfo(size_t trackIndex) const {

    sp<AMessage> format = new AMessage();
    sp<MetaData> meta = mSources.itemAt(trackIndex)->getFormat();
    if (meta == NULL) {
        ALOGE("no metadata for track %zu", trackIndex);
        return NULL;
    }

    const char *mime;
    CHECK(meta->findCString(kKeyMIMEType, &mime));
+14 −3
Original line number Diff line number Diff line
@@ -421,8 +421,15 @@ void NuPlayer::seekToAsync(int64_t seekTimeUs, bool needNotify) {

void NuPlayer::writeTrackInfo(
        Parcel* reply, const sp<AMessage> format) const {
    if (format == NULL) {
        ALOGE("NULL format");
        return;
    }
    int32_t trackType;
    CHECK(format->findInt32("type", &trackType));
    if (format->findInt32("type", &trackType) != OK) {
        ALOGE("no track type");
        return;
    }

    AString mime;
    if (!format->findString("mime", &mime)) {
@@ -435,12 +442,16 @@ void NuPlayer::writeTrackInfo(
        } else if (trackType == MEDIA_TRACK_TYPE_VIDEO) {
            mime = "video/";
        } else {
            TRESPASS();
            ALOGE("unknown track type: %d", trackType);
            return;
        }
    }

    AString lang;
    CHECK(format->findString("language", &lang));
    if (format->findString("language", &lang)) {
        ALOGE("no language");
        return;
    }

    reply->writeInt32(2); // write something non-zero
    reply->writeInt32(trackType);