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

Commit aa50ac19 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Don't wait on permission check."

parents 4ae43230 17b12dc0
Loading
Loading
Loading
Loading
+1 −22
Original line number Diff line number Diff line
@@ -125,8 +125,6 @@ static std::once_flag flag;

namespace {

constexpr const char* kDump = "android.permission.DUMP";

static binder::Status ok() {
    return binder::Status::ok();
}
@@ -150,19 +148,6 @@ static binder::Status error(uint32_t code, const std::string& msg) {
    return binder::Status::fromServiceSpecificError(code, String8(msg.c_str()));
}

binder::Status checkPermission(const char* permission) {
    pid_t pid;
    uid_t uid;

    if (checkCallingPermission(String16(permission), reinterpret_cast<int32_t*>(&pid),
            reinterpret_cast<int32_t*>(&uid))) {
        return ok();
    } else {
        return exception(binder::Status::EX_SECURITY,
                StringPrintf("UID %d / PID %d lacks permission %s", uid, pid, permission));
    }
}

binder::Status checkUid(uid_t expectedUid) {
    uid_t uid = IPCThreadState::self()->getCallingUid();
    if (uid == expectedUid || uid == AID_ROOT) {
@@ -401,12 +386,6 @@ status_t InstalldNativeService::start() {
}

status_t InstalldNativeService::dump(int fd, const Vector<String16>& /* args */) {
    const binder::Status dump_permission = checkPermission(kDump);
    if (!dump_permission.isOk()) {
        dprintf(fd, "%s\n", dump_permission.toString8().c_str());
        return PERMISSION_DENIED;
    }

    {
        std::lock_guard<std::recursive_mutex> lock(mMountsLock);
        dprintf(fd, "Storage mounts:\n");