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

Commit ddc0e301 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add more robust SharedFilter permission checks."

parents 74a261a9 5375f28e
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -38,7 +38,12 @@ using namespace std;

TunerFilter::TunerFilter(shared_ptr<IFilter> filter, shared_ptr<FilterCallback> cb,
                         DemuxFilterType type)
      : mFilter(filter), mType(type), mStarted(false), mShared(false), mFilterCallback(cb) {}
      : mFilter(filter),
        mType(type),
        mStarted(false),
        mShared(false),
        mClientPid(-1),
        mFilterCallback(cb) {}

TunerFilter::~TunerFilter() {
    Mutex::Autolock _l(mLock);
@@ -278,8 +283,10 @@ TunerFilter::~TunerFilter() {
        }
    }

    auto res = mFilter->stop();
    mStarted = false;
    return mFilter->stop();

    return res;
}

::ndk::ScopedAStatus TunerFilter::flush() {
@@ -334,6 +341,7 @@ TunerFilter::~TunerFilter() {
    mFilter = nullptr;
    mStarted = false;
    mShared = false;
    mClientPid = -1;

    return res;
}
@@ -398,7 +406,7 @@ TunerFilter::~TunerFilter() {
}

bool TunerFilter::isSharedFilterAllowed(int callingPid) {
    return mClientPid != callingPid;
    return mShared && mClientPid != callingPid;
}

void TunerFilter::attachSharedFilterCallback(const shared_ptr<ITunerFilterCallback>& in_cb) {
+9 −3
Original line number Diff line number Diff line
@@ -91,7 +91,12 @@ namespace tuner {

TunerHidlFilter::TunerHidlFilter(sp<HidlIFilter> filter, sp<FilterCallback> cb,
                                 DemuxFilterType type)
      : mFilter(filter), mType(type), mStarted(false), mShared(false), mFilterCallback(cb) {
      : mFilter(filter),
        mType(type),
        mStarted(false),
        mShared(false),
        mClientPid(-1),
        mFilterCallback(cb) {
    mFilter_1_1 = ::android::hardware::tv::tuner::V1_1::IFilter::castFrom(filter);
}

@@ -441,10 +446,10 @@ TunerHidlFilter::~TunerHidlFilter() {
    }

    HidlResult res = mFilter->stop();
    mStarted = false;
    if (res != HidlResult::SUCCESS) {
        return ::ndk::ScopedAStatus::fromServiceSpecificError(static_cast<int32_t>(res));
    }
    mStarted = false;

    return ::ndk::ScopedAStatus::ok();
}
@@ -507,6 +512,7 @@ TunerHidlFilter::~TunerHidlFilter() {
    mFilter_1_1 = nullptr;
    mStarted = false;
    mShared = false;
    mClientPid = -1;

    if (res != HidlResult::SUCCESS) {
        return ::ndk::ScopedAStatus::fromServiceSpecificError(static_cast<int32_t>(res));
@@ -575,7 +581,7 @@ TunerHidlFilter::~TunerHidlFilter() {
}

bool TunerHidlFilter::isSharedFilterAllowed(int callingPid) {
    return mClientPid != callingPid;
    return mShared && mClientPid != callingPid;
}

void TunerHidlFilter::attachSharedFilterCallback(const shared_ptr<ITunerFilterCallback>& in_cb) {