summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2011-09-07 09:05:04 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-09-07 09:05:04 -0700
commitaa9dfd5d07534c29337b5c72022f7dfecd85deea (patch)
treebe9c30397e3f4e7eaaadacc5d2af410ee58f48e9 /media
parentd6e27296206b9f897401107f1c46f4ac2947be85 (diff)
parente7484f36061a60aadadb01143d84964d931aa837 (diff)
downloadframeworks_av-aa9dfd5d07534c29337b5c72022f7dfecd85deea.zip
frameworks_av-aa9dfd5d07534c29337b5c72022f7dfecd85deea.tar.gz
frameworks_av-aa9dfd5d07534c29337b5c72022f7dfecd85deea.tar.bz2
Merge "Stop metadata retriever from dereferencing a NULL pointer if"
Diffstat (limited to 'media')
-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 778c0b5..c74cb5a 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;