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

Commit f00d40c7 authored by Andreas Huber's avatar Andreas Huber Committed by Gerrit Code Review
Browse files

Merge "Memory leak solved in MPEG4Extractor::parseChunk for cover art"

parents e7550eb2 1552217c
Loading
Loading
Loading
Loading
+3 −6
Original line number Original line Diff line number Diff line
@@ -1424,18 +1424,15 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) {
            if (mFileMetaData != NULL) {
            if (mFileMetaData != NULL) {
                ALOGV("chunk_data_size = %lld and data_offset = %lld",
                ALOGV("chunk_data_size = %lld and data_offset = %lld",
                        chunk_data_size, data_offset);
                        chunk_data_size, data_offset);
                uint8_t *buffer = new uint8_t[chunk_data_size + 1];
                sp<ABuffer> buffer = new ABuffer(chunk_data_size + 1);
                if (mDataSource->readAt(
                if (mDataSource->readAt(
                    data_offset, buffer, chunk_data_size) != (ssize_t)chunk_data_size) {
                    data_offset, buffer->data(), chunk_data_size) != (ssize_t)chunk_data_size) {
                    delete[] buffer;
                    buffer = NULL;

                    return ERROR_IO;
                    return ERROR_IO;
                }
                }
                const int kSkipBytesOfDataBox = 16;
                const int kSkipBytesOfDataBox = 16;
                mFileMetaData->setData(
                mFileMetaData->setData(
                    kKeyAlbumArt, MetaData::TYPE_NONE,
                    kKeyAlbumArt, MetaData::TYPE_NONE,
                    buffer + kSkipBytesOfDataBox, chunk_data_size - kSkipBytesOfDataBox);
                    buffer->data() + kSkipBytesOfDataBox, chunk_data_size - kSkipBytesOfDataBox);
            }
            }


            *offset += chunk_size;
            *offset += chunk_size;