diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2019-03-15 23:15:42 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2019-03-15 23:15:42 +0000 |
commit | 49add3b937aae8d992efa083173acf222805344b (patch) | |
tree | 1fdddc8518ef153259f27ecfb4de136dc99b15cb | |
parent | c751c202a6f1b7ed008cfd6a311781e9ce218fc4 (diff) | |
parent | f4b9db792b18f523986f421a8d54325d079ede07 (diff) | |
download | av-49add3b937aae8d992efa083173acf222805344b.tar.gz |
Merge cherrypicks of [6738238, 6739193, 6738335, 6738239, 6739470, 6739471, 6738201, 6738202, 6738203, 6738204, 6738205, 6738206, 6738207, 6738208, 6738209, 6739510, 6739511, 6739512, 6739513, 6739514, 6739515, 6739516, 6738336, 6739517, 6739518, 6738416, 6738417, 6739472, 6739473, 6739519, 6739520, 6739071, 6739072, 6738695, 6738696, 6738697, 6738698, 6738699, 6738243, 6739521, 6738244, 6738153, 6738154, 6738155, 6738156, 6738157, 6738158, 6738159, 6738160, 6739522, 6739523] into nyc-bugfix-releaseandroid-7.0.0_r36nougat-mr0.5-release
Change-Id: I95c94567890806f7992c0f2a764f6036ff162f4c
-rw-r--r-- | media/libmedia/IMediaExtractor.cpp | 23 | ||||
-rw-r--r-- | media/libstagefright/MidiExtractor.cpp | 5 |
2 files changed, 19 insertions, 9 deletions
diff --git a/media/libmedia/IMediaExtractor.cpp b/media/libmedia/IMediaExtractor.cpp index 4be111813c..744af1be00 100644 --- a/media/libmedia/IMediaExtractor.cpp +++ b/media/libmedia/IMediaExtractor.cpp @@ -23,6 +23,7 @@ #include <binder/IPCThreadState.h> #include <binder/Parcel.h> +#include <binder/PermissionCache.h> #include <media/IMediaExtractor.h> #include <media/stagefright/MetaData.h> @@ -272,13 +273,21 @@ void registerMediaExtractor( status_t dumpExtractors(int fd, const Vector<String16>&) { String8 out; - out.append("Recent extractors, most recent first:\n"); - { - Mutex::Autolock lock(sExtractorsLock); - for (size_t i = 0; i < sExtractors.size(); i++) { - const ExtractorInstance &instance = sExtractors.itemAt(i); - out.append(" "); - out.append(instance.toString()); + const IPCThreadState* ipc = IPCThreadState::self(); + const int pid = ipc->getCallingPid(); + const int uid = ipc->getCallingUid(); + if (!PermissionCache::checkPermission(String16("android.permission.DUMP"), pid, uid)) { + out.appendFormat("Permission Denial: " + "can't dump MediaExtractor from pid=%d, uid=%d\n", pid, uid); + } else { + out.append("Recent extractors, most recent first:\n"); + { + Mutex::Autolock lock(sExtractorsLock); + for (size_t i = 0; i < sExtractors.size(); i++) { + const ExtractorInstance &instance = sExtractors.itemAt(i); + out.append(" "); + out.append(instance.toString()); + } } } write(fd, out.string(), out.size()); diff --git a/media/libstagefright/MidiExtractor.cpp b/media/libstagefright/MidiExtractor.cpp index 7930bbb63c..214513403b 100644 --- a/media/libstagefright/MidiExtractor.cpp +++ b/media/libstagefright/MidiExtractor.cpp @@ -246,8 +246,9 @@ MediaBuffer* MidiEngine::readBuffer() { EAS_I32 numRendered; EAS_RESULT result = EAS_Render(mEasData, p, mEasConfig->mixBufferSize, &numRendered); if (result != EAS_SUCCESS) { - ALOGE("EAS_Render returned %ld", result); - break; + ALOGE("EAS_Render() returned %ld, numBytesOutput = %d", result, numBytesOutput); + buffer->release(); + return NULL; // Stop processing to prevent infinite loops. } p += numRendered * mEasConfig->numChannels; numBytesOutput += numRendered * mEasConfig->numChannels * sizeof(EAS_PCM); |