diff options
| author | 2016-02-20 00:33:59 +0000 | |
|---|---|---|
| committer | 2016-02-20 00:33:59 +0000 | |
| commit | 738d34b162e0b54fbbc04f72c46204b5adb6554f (patch) | |
| tree | cfa7e99db0e0e422029527180a2afe045c0542f6 /libs/gui/BufferQueueConsumer.cpp | |
| parent | 4318b9c88cca12485082687658ee3bab5ecd9013 (diff) | |
| parent | 82b9819d930c48124812c1a499a91218305a5d14 (diff) | |
Merge "BQ: Add permission check to BufferQueueConsumer::dump" into lmp-dev am: 793be16dd3 am: 7e83de0114 am: f419ec1bfb am: 8b640e6403 am: 5d2c73e7dc am: 724f7954db
am: 82b9819d93
* commit '82b9819d930c48124812c1a499a91218305a5d14':
  BQ: Add permission check to BufferQueueConsumer::dump
Diffstat (limited to 'libs/gui/BufferQueueConsumer.cpp')
| -rw-r--r-- | libs/gui/BufferQueueConsumer.cpp | 16 | 
1 files changed, 15 insertions, 1 deletions
diff --git a/libs/gui/BufferQueueConsumer.cpp b/libs/gui/BufferQueueConsumer.cpp index 92285e5811..62daed3f45 100644 --- a/libs/gui/BufferQueueConsumer.cpp +++ b/libs/gui/BufferQueueConsumer.cpp @@ -32,6 +32,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) : @@ -713,7 +717,17 @@ sp<NativeHandle> BufferQueueConsumer::getSidebandStream() const {  }  void BufferQueueConsumer::dump(String8& result, const char* prefix) const { -    mCore->dump(result, prefix); +    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  |