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

Commit 40dbf7f6 authored by Martijn Coenen's avatar Martijn Coenen Committed by Automerger Merge Worker
Browse files

Merge "Revert "libbinder: ignore CallRestriction for magic 0 cmd"" am:...

Merge "Revert "libbinder: ignore CallRestriction for magic 0 cmd"" am: 4f2e77af am: dbd107b4 am: bdab8420 am: e9f7aa8d

Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1431752

Change-Id: I9b194cfafcc748bae80bcd1c1e6834c1f3160500
parents f05beebe e9f7aa8d
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -448,14 +448,6 @@ int32_t IPCThreadState::getLastTransactionBinderFlags() const
    return mLastTransactionBinderFlags;
}

void IPCThreadState::setCallRestriction(ProcessState::CallRestriction restriction) {
    mCallRestriction = restriction;
}

ProcessState::CallRestriction IPCThreadState::getCallRestriction() const {
    return mCallRestriction;
}

void IPCThreadState::restoreCallingIdentity(int64_t token)
{
    mCallingUid = (int)(token>>32);
+1 −9
Original line number Diff line number Diff line
@@ -282,17 +282,9 @@ sp<IBinder> ProcessState::getStrongProxyForHandle(int32_t handle)
                // a driver API to get a handle to the context manager with
                // proper reference counting.

                IPCThreadState* ipc = IPCThreadState::self();

                CallRestriction originalCallRestriction = ipc->getCallRestriction();
                ipc->setCallRestriction(CallRestriction::NONE);

                Parcel data;
                status_t status = ipc->transact(
                status_t status = IPCThreadState::self()->transact(
                        0, IBinder::PING_TRANSACTION, data, nullptr, 0);

                ipc->setCallRestriction(originalCallRestriction);

                if (status == DEAD_OBJECT)
                   return nullptr;
            }
+3 −6
Original line number Diff line number Diff line
@@ -32,8 +32,6 @@ namespace android {
class IPCThreadState
{
public:
    using CallRestriction = ProcessState::CallRestriction;

    static  IPCThreadState*     self();
    static  IPCThreadState*     selfOrNull();  // self(), but won't instantiate

@@ -101,9 +99,6 @@ public:
            void                setLastTransactionBinderFlags(int32_t flags);
            int32_t             getLastTransactionBinderFlags() const;

            void                setCallRestriction(CallRestriction restriction);
            CallRestriction     getCallRestriction() const;

            int64_t             clearCallingIdentity();
            // Restores PID/UID (not SID)
            void                restoreCallingIdentity(int64_t token);
@@ -162,6 +157,7 @@ public:
            // This constant needs to be kept in sync with Binder.UNSET_WORKSOURCE from the Java
            // side.
            static const int32_t kUnsetWorkSource = -1;

private:
                                IPCThreadState();
                                ~IPCThreadState();
@@ -208,7 +204,8 @@ private:
            bool                mPropagateWorkSource;
            int32_t             mStrictModePolicy;
            int32_t             mLastTransactionBinderFlags;
            CallRestriction     mCallRestriction;

            ProcessState::CallRestriction mCallRestriction;
};

} // namespace android
+0 −6
Original line number Diff line number Diff line
@@ -608,12 +608,6 @@ TEST_F(BinderLibTest, AddServer)
    ASSERT_TRUE(server != nullptr);
}

TEST_F(BinderLibTest, AddManagerToManager) {
    sp<IServiceManager> sm = defaultServiceManager();
    sp<IBinder> binder = IInterface::asBinder(sm);
    EXPECT_EQ(NO_ERROR, sm->addService(String16("binderLibTest-manager"), binder));
}

TEST_F(BinderLibTest, DeathNotificationStrongRef)
{
    status_t ret;