diff options
author | Yifan Hong <elsk@google.com> | 2017-08-03 18:24:04 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2017-08-03 18:24:04 +0000 |
commit | 219b580fed7916ed4e02dd634e003073f91c6b93 (patch) | |
tree | d383cf67bfcabcda5c2e4c086d2b5598ca85b415 | |
parent | 18510e1f6fcb53f8f36d1b53c77443d8bd2e3ae6 (diff) | |
parent | fc8d8850ab5164c26386210db2e3fe1bc286b40d (diff) | |
download | native-219b580fed7916ed4e02dd634e003073f91c6b93.tar.gz |
Merge changes from topic 'libcutils_private_headers'
* changes:
Use getpwnam()/getgrnam() instead of AID_* macros (libgui)
Use cutils/android_filesystem_config.h
-rw-r--r-- | cmds/servicemanager/service_manager.c | 3 | ||||
-rw-r--r-- | libs/gui/BufferQueueConsumer.cpp | 15 |
2 files changed, 12 insertions, 6 deletions
diff --git a/cmds/servicemanager/service_manager.c b/cmds/servicemanager/service_manager.c index 43c4c8b3c4..70e016a8a4 100644 --- a/cmds/servicemanager/service_manager.c +++ b/cmds/servicemanager/service_manager.c @@ -8,10 +8,9 @@ #include <stdlib.h> #include <string.h> +#include <cutils/android_filesystem_config.h> #include <cutils/multiuser.h> -#include <private/android_filesystem_config.h> - #include <selinux/android.h> #include <selinux/avc.h> diff --git a/libs/gui/BufferQueueConsumer.cpp b/libs/gui/BufferQueueConsumer.cpp index ee4c58cfce..17ff24983c 100644 --- a/libs/gui/BufferQueueConsumer.cpp +++ b/libs/gui/BufferQueueConsumer.cpp @@ -15,6 +15,8 @@ */ #include <inttypes.h> +#include <pwd.h> +#include <sys/types.h> #define LOG_TAG "BufferQueueConsumer" #define ATRACE_TAG ATRACE_TAG_GRAPHICS @@ -34,7 +36,6 @@ #include <binder/IPCThreadState.h> #include <binder/PermissionCache.h> -#include <private/android_filesystem_config.h> namespace android { @@ -734,12 +735,18 @@ status_t BufferQueueConsumer::discardFreeBuffers() { } void BufferQueueConsumer::dumpState(String8& result, const char* prefix) const { + struct passwd* pwd = getpwnam("shell"); + uid_t shellUid = pwd ? pwd->pw_uid : 0; + if (!shellUid) { + BQ_LOGE("Cannot get AID_SHELL"); + return; + } + 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)) { + if ((uid != shellUid) && + !PermissionCache::checkPermission(String16("android.permission.DUMP"), pid, uid)) { result.appendFormat("Permission Denial: can't dump BufferQueueConsumer " "from pid=%d, uid=%d\n", pid, uid); android_errorWriteWithInfoLog(0x534e4554, "27046057", |