diff options
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 |
commit | aa9dfd5d07534c29337b5c72022f7dfecd85deea (patch) | |
tree | be9c30397e3f4e7eaaadacc5d2af410ee58f48e9 /media | |
parent | d6e27296206b9f897401107f1c46f4ac2947be85 (diff) | |
parent | e7484f36061a60aadadb01143d84964d931aa837 (diff) | |
download | frameworks_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.cpp | 16 |
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; |