Merge "CTS error while media dump()" am: 5617fb288b am: 1e216bc835

am: 00c05a5028

Change-Id: Ic16f7486d6768ddd7e36e396321b8630bd9ad36b
gugelfrei
ray-cy.lee 7 years ago committed by android-build-merger
commit 32d82714da

@ -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>
@ -323,13 +324,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());

Loading…
Cancel
Save