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

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

Merge "Prevent cm from incrementing 0."

parents b4d6b90f 5c75a5a6
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -298,12 +298,17 @@ ProcessState::handle_entry* ProcessState::lookupHandleLocked(int32_t handle)
    return &mHandleToObject.editItemAt(handle);
    return &mHandleToObject.editItemAt(handle);
}
}


// see b/166779391: cannot change the VNDK interface, so access like this
extern sp<BBinder> the_context_object;

sp<IBinder> ProcessState::getStrongProxyForHandle(int32_t handle)
sp<IBinder> ProcessState::getStrongProxyForHandle(int32_t handle)
{
{
    sp<IBinder> result;
    sp<IBinder> result;


    AutoMutex _l(mLock);
    AutoMutex _l(mLock);


    if (handle == 0 && the_context_object != nullptr) return the_context_object;

    handle_entry* e = lookupHandleLocked(handle);
    handle_entry* e = lookupHandleLocked(handle);


    if (e != nullptr) {
    if (e != nullptr) {
+6 −0
Original line number Original line Diff line number Diff line
@@ -447,6 +447,12 @@ TEST_F(BinderLibTest, CannotUseBinderAfterFork) {
    EXPECT_DEATH({ ProcessState::self(); }, "libbinder ProcessState can not be used after fork");
    EXPECT_DEATH({ ProcessState::self(); }, "libbinder ProcessState can not be used after fork");
}
}


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, WasParceled) {
TEST_F(BinderLibTest, WasParceled) {
    auto binder = sp<BBinder>::make();
    auto binder = sp<BBinder>::make();
    EXPECT_FALSE(binder->wasParceled());
    EXPECT_FALSE(binder->wasParceled());