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

Commit 16b43552 authored by Robert Shih's avatar Robert Shih Committed by Automerger Merge Worker
Browse files

Merge "AMPEG4ElementaryAssembler: reject malformed desc" into rvc-dev am: 433ccf7d

Change-Id: Ic7a8b2ce7f75178ceaea5955d709e46a14699ef6
parents 77b1175e 433ccf7d
Loading
Loading
Loading
Loading
+8 −0
Original line number Original line Diff line number Diff line
@@ -203,6 +203,14 @@ struct AUHeader {
    unsigned mSerial;
    unsigned mSerial;
};
};


bool AMPEG4ElementaryAssembler::initCheck() {
    if(mSizeLength == 0 || mIndexLength == 0 || mIndexDeltaLength == 0) {
        android_errorWriteLog(0x534e4554, "124777537");
        return false;
    }
    return true;
}

ARTPAssembler::AssemblyStatus AMPEG4ElementaryAssembler::addPacket(
ARTPAssembler::AssemblyStatus AMPEG4ElementaryAssembler::addPacket(
        const sp<ARTPSource> &source) {
        const sp<ARTPSource> &source) {
    List<sp<ABuffer> > *queue = source->queue();
    List<sp<ABuffer> > *queue = source->queue();
+1 −0
Original line number Original line Diff line number Diff line
@@ -36,6 +36,7 @@ struct AMPEG4ElementaryAssembler : public ARTPAssembler {
    AMPEG4ElementaryAssembler(
    AMPEG4ElementaryAssembler(
            const sp<AMessage> &notify, const AString &desc,
            const sp<AMessage> &notify, const AString &desc,
            const AString &params);
            const AString &params);
    virtual bool initCheck();


protected:
protected:
    virtual ~AMPEG4ElementaryAssembler();
    virtual ~AMPEG4ElementaryAssembler();
+1 −0
Original line number Original line Diff line number Diff line
@@ -39,6 +39,7 @@ struct ARTPAssembler : public RefBase {


    void onPacketReceived(const sp<ARTPSource> &source);
    void onPacketReceived(const sp<ARTPSource> &source);
    virtual void onByeReceived() = 0;
    virtual void onByeReceived() = 0;
    virtual bool initCheck() { return true; }


protected:
protected:
    virtual AssemblyStatus assembleMore(const sp<ARTPSource> &source) = 0;
    virtual AssemblyStatus assembleMore(const sp<ARTPSource> &source) = 0;
+8 −2
Original line number Original line Diff line number Diff line
@@ -82,6 +82,10 @@ ARTPSource::ARTPSource(
    } else {
    } else {
        TRESPASS();
        TRESPASS();
    }
    }

    if (mAssembler != NULL && !mAssembler->initCheck()) {
        mAssembler.clear();
    }
}
}


static uint32_t AbsDiff(uint32_t seq1, uint32_t seq2) {
static uint32_t AbsDiff(uint32_t seq1, uint32_t seq2) {
@@ -89,7 +93,7 @@ static uint32_t AbsDiff(uint32_t seq1, uint32_t seq2) {
}
}


void ARTPSource::processRTPPacket(const sp<ABuffer> &buffer) {
void ARTPSource::processRTPPacket(const sp<ABuffer> &buffer) {
    if (queuePacket(buffer) && mAssembler != NULL) {
    if (mAssembler != NULL && queuePacket(buffer)) {
        mAssembler->onPacketReceived(this);
        mAssembler->onPacketReceived(this);
    }
    }
}
}
@@ -171,8 +175,10 @@ bool ARTPSource::queuePacket(const sp<ABuffer> &buffer) {
}
}


void ARTPSource::byeReceived() {
void ARTPSource::byeReceived() {
    if (mAssembler != NULL) {
        mAssembler->onByeReceived();
        mAssembler->onByeReceived();
    }
    }
}


void ARTPSource::addFIR(const sp<ABuffer> &buffer) {
void ARTPSource::addFIR(const sp<ABuffer> &buffer) {
    if (!mIssueFIRRequests) {
    if (!mIssueFIRRequests) {