summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYifan Hong <elsk@google.com>2017-08-03 18:24:04 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2017-08-03 18:24:04 +0000
commit219b580fed7916ed4e02dd634e003073f91c6b93 (patch)
treed383cf67bfcabcda5c2e4c086d2b5598ca85b415
parent18510e1f6fcb53f8f36d1b53c77443d8bd2e3ae6 (diff)
parentfc8d8850ab5164c26386210db2e3fe1bc286b40d (diff)
downloadnative-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.c3
-rw-r--r--libs/gui/BufferQueueConsumer.cpp15
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",