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

Commit 219b580f authored by Yifan Hong's avatar Yifan Hong Committed by Gerrit Code Review
Browse files

Merge changes from topic 'libcutils_private_headers'

* changes:
  Use getpwnam()/getgrnam() instead of AID_* macros (libgui)
  Use cutils/android_filesystem_config.h
parents 18510e1f fc8d8850
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -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>

+11 −4
Original line number Diff line number Diff line
@@ -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",