Skip to content

Commit 411bf4c

Browse files
marconeandi34
authored andcommitted
DO NOT MERGE Check malloc result to avoid NPD
Bug: 28471206 Change-Id: Id5d055d76893d6f53a2e524ff5f282d1ddca3345 (cherry picked from commit ad92798)
1 parent 69d8a6a commit 411bf4c

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

media/libstagefright/MPEG4Extractor.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -521,6 +521,10 @@ status_t MPEG4Extractor::readMetaData() {
521521
}
522522
if (psshsize) {
523523
char *buf = (char*)malloc(psshsize);
524+
if (!buf) {
525+
ALOGE("b/28471206");
526+
return NO_MEMORY;
527+
}
524528
char *ptr = buf;
525529
for (size_t i = 0; i < mPssh.size(); i++) {
526530
memcpy(ptr, mPssh[i].uuid, 20); // uuid + length
@@ -1572,6 +1576,11 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) {
15721576
{
15731577
sp<ABuffer> buffer = new ABuffer(chunk_data_size);
15741578

1579+
if (buffer->data() == NULL) {
1580+
ALOGE("b/28471206");
1581+
return NO_MEMORY;
1582+
}
1583+
15751584
if (mDataSource->readAt(
15761585
data_offset, buffer->data(), chunk_data_size) < chunk_data_size) {
15771586
return ERROR_IO;
@@ -1786,6 +1795,10 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) {
17861795
return ERROR_MALFORMED;
17871796
}
17881797
sp<ABuffer> buffer = new ABuffer(chunk_data_size + 1);
1798+
if (buffer->data() == NULL) {
1799+
ALOGE("b/28471206");
1800+
return NO_MEMORY;
1801+
}
17891802
if (mDataSource->readAt(
17901803
data_offset, buffer->data(), chunk_data_size) != (ssize_t)chunk_data_size) {
17911804
return ERROR_IO;

0 commit comments

Comments
 (0)