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

Commit 69d3d0df authored by Phil Burk's avatar Phil Burk Committed by android-build-merger
Browse files

Merge "aaudio: fix resource leak in client tracking" into oc-dr1-dev

am: fef6b3d4

Change-Id: I9aa64dc3e76f0858ca898a1be036e38ba5ab810f
parents 1911951a fef6b3d4
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -127,6 +127,7 @@ aaudio_handle_t AAudioService::openStream(const aaudio::AAudioStreamRequest &req
            ALOGD("AAudioService::openStream(): handle = 0x%08X", handle);
            serviceStream->setHandle(handle);
            pid_t pid = request.getProcessId();
            serviceStream->setOwnerProcessId(pid);
            AAudioClientTracker::getInstance().registerClientStream(pid, serviceStream);
        }
        return handle;
@@ -140,7 +141,7 @@ aaudio_result_t AAudioService::closeStream(aaudio_handle_t streamHandle) {
    ALOGD("AAudioService.closeStream(0x%08X)", streamHandle);
    if (serviceStream != nullptr) {
        serviceStream->close();
        pid_t pid = IPCThreadState::self()->getCallingPid();
        pid_t pid = serviceStream->getOwnerProcessId();
        AAudioClientTracker::getInstance().unregisterClientStream(pid, serviceStream);
        return AAUDIO_OK;
    }
+8 −0
Original line number Diff line number Diff line
@@ -126,6 +126,13 @@ public:
        mOwnerUserId = uid;
    }

    pid_t getOwnerProcessId() const {
        return mOwnerProcessId;
    }
    void setOwnerProcessId(pid_t pid) {
        mOwnerProcessId = pid;
    }

    aaudio_handle_t getHandle() const {
        return mHandle;
    }
@@ -159,6 +166,7 @@ protected:
    int32_t            mSampleRate = AAUDIO_UNSPECIFIED;
    int32_t            mCapacityInFrames = AAUDIO_UNSPECIFIED;
    uid_t              mOwnerUserId = -1;
    pid_t              mOwnerProcessId = -1;
private:
    aaudio_handle_t    mHandle = -1;
};