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

Commit 8672fb35 authored by Marco Nelissen's avatar Marco Nelissen
Browse files

Fail gracefully on allocation failure

Bug: 23540411
Change-Id: Ief53134304aa6005b1b2c48cf453267e17d63e23
parent 1f04884c
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -3536,8 +3536,21 @@ void OMXCodec::setJPEGInputFormat(
}

void OMXCodec::addCodecSpecificData(const void *data, size_t size) {

    if (size > SIZE_MAX - (sizeof(CodecSpecificData) - 1)) {
        // this would require the size to be ~4GB, which should be near impossible
        // given that it is the size of an in-memory chunk of data
        ALOGE("b/23540411");
        return;
    }

    CodecSpecificData *specific =
        (CodecSpecificData *)malloc(sizeof(CodecSpecificData) + size - 1);
        (CodecSpecificData *)malloc(sizeof(CodecSpecificData) - 1 + size);

    if (specific == NULL) {
        ALOGE("b/23540411");
        return;
    }

    specific->mSize = size;
    memcpy(specific->mData, data, size);