summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Andreas Huber <andih@google.com> 2011-09-07 09:05:04 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2011-09-07 09:05:04 -0700
commit01dba603d7c74756126297b843aca0befed8810c (patch)
tree22c818ac3287d4c0dc118a74459da307278e8a38
parentcbdc9d2e9cba355de4f57eaa926a2d51aa343ac8 (diff)
parent612e16191a31758627dd039dec22f0b122c33ce6 (diff)
Merge "Stop metadata retriever from dereferencing a NULL pointer if"
-rw-r--r--media/libstagefright/StagefrightMetadataRetriever.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/media/libstagefright/StagefrightMetadataRetriever.cpp b/media/libstagefright/StagefrightMetadataRetriever.cpp
index 778c0b504390..c74cb5aeb02c 100644
--- a/media/libstagefright/StagefrightMetadataRetriever.cpp
+++ b/media/libstagefright/StagefrightMetadataRetriever.cpp
@@ -283,8 +283,15 @@ VideoFrame *StagefrightMetadataRetriever::getFrameAtTime(
return NULL;
}
+ sp<MetaData> fileMeta = mExtractor->getMetaData();
+
+ if (fileMeta == NULL) {
+ LOGV("extractor doesn't publish metadata, failed to initialize?");
+ return NULL;
+ }
+
int32_t drm = 0;
- if (mExtractor->getMetaData()->findInt32(kKeyIsDRM, &drm) && drm != 0) {
+ if (fileMeta->findInt32(kKeyIsDRM, &drm) && drm != 0) {
LOGE("frame grab not allowed.");
return NULL;
}
@@ -320,7 +327,7 @@ VideoFrame *StagefrightMetadataRetriever::getFrameAtTime(
const void *data;
uint32_t type;
size_t dataSize;
- if (mExtractor->getMetaData()->findData(kKeyAlbumArt, &type, &data, &dataSize)
+ if (fileMeta->findData(kKeyAlbumArt, &type, &data, &dataSize)
&& mAlbumArt == NULL) {
mAlbumArt = new MediaAlbumArt;
mAlbumArt->mSize = dataSize;
@@ -387,6 +394,11 @@ const char *StagefrightMetadataRetriever::extractMetadata(int keyCode) {
void StagefrightMetadataRetriever::parseMetaData() {
sp<MetaData> meta = mExtractor->getMetaData();
+ if (meta == NULL) {
+ LOGV("extractor doesn't publish metadata, failed to initialize?");
+ return;
+ }
+
struct Map {
int from;
int to;