Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7e83de01 authored by Pablo Ceballos's avatar Pablo Ceballos Committed by android-build-merger
Browse files

Merge "BQ: Add permission check to BufferQueueConsumer::dump" into lmp-dev

am: 793be16d

* commit '793be16d':
  BQ: Add permission check to BufferQueueConsumer::dump
parents 84f488f3 793be16d
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -26,6 +26,10 @@
#include <gui/IConsumerListener.h>
#include <gui/IProducerListener.h>

#include <binder/IPCThreadState.h>
#include <binder/PermissionCache.h>
#include <private/android_filesystem_config.h>

namespace android {

BufferQueueConsumer::BufferQueueConsumer(const sp<BufferQueueCore>& core) :
@@ -517,7 +521,17 @@ sp<NativeHandle> BufferQueueConsumer::getSidebandStream() const {
}

void BufferQueueConsumer::dump(String8& result, const char* prefix) const {
    const IPCThreadState* ipc = IPCThreadState::self();
    const pid_t pid = ipc->getCallingPid();
    const uid_t uid = ipc->getCallingUid();
    if ((uid != AID_SHELL)
            && !PermissionCache::checkPermission(String16(
            "android.permission.DUMP"), pid, uid)) {
        result.appendFormat("Permission Denial: can't dump BufferQueueConsumer "
                "from pid=%d, uid=%d\n", pid, uid);
    } else {
        mCore->dump(result, prefix);
    }
}

} // namespace android