Loading include/media/IAudioFlinger.h +1 −0 Original line number Diff line number Diff line Loading @@ -196,6 +196,7 @@ public: audio_io_handle_t output, audio_session_t sessionId, const String16& callingPackage, pid_t pid, status_t *status, int *id, int *enabled) = 0; Loading media/libaudioclient/AudioEffect.cpp +3 −2 Original line number Diff line number Diff line Loading @@ -128,9 +128,11 @@ status_t AudioEffect::set(const effect_uuid_t *type, mDescriptor.uuid = *(uuid != NULL ? uuid : EFFECT_UUID_NULL); mIEffectClient = new EffectClient(this); mClientPid = IPCThreadState::self()->getCallingPid(); iEffect = audioFlinger->createEffect((effect_descriptor_t *)&mDescriptor, mIEffectClient, priority, io, mSessionId, mOpPackageName, &mStatus, &mId, &enabled); mIEffectClient, priority, io, mSessionId, mOpPackageName, mClientPid, &mStatus, &mId, &enabled); if (iEffect == 0 || (mStatus != NO_ERROR && mStatus != ALREADY_EXISTS)) { ALOGE("set(): AudioFlinger could not create effect, status: %d", mStatus); Loading @@ -156,7 +158,6 @@ status_t AudioEffect::set(const effect_uuid_t *type, mCblk->buffer = (uint8_t *)mCblk + bufOffset; IInterface::asBinder(iEffect)->linkToDeath(mIEffectClient); mClientPid = IPCThreadState::self()->getCallingPid(); ALOGV("set() %p OK effect: %s id: %d status %d enabled %d pid %d", this, mDescriptor.name, mId, mStatus, mEnabled, mClientPid); Loading media/libaudioclient/IAudioFlinger.cpp +5 −1 Original line number Diff line number Diff line Loading @@ -716,6 +716,7 @@ public: audio_io_handle_t output, audio_session_t sessionId, const String16& opPackageName, pid_t pid, status_t *status, int *id, int *enabled) Loading @@ -737,6 +738,7 @@ public: data.writeInt32((int32_t) output); data.writeInt32(sessionId); data.writeString16(opPackageName); data.writeInt32((int32_t) pid); status_t lStatus = remote()->transact(CREATE_EFFECT, data, &reply); if (lStatus != NO_ERROR) { Loading Loading @@ -1294,12 +1296,14 @@ status_t BnAudioFlinger::onTransact( audio_io_handle_t output = (audio_io_handle_t) data.readInt32(); audio_session_t sessionId = (audio_session_t) data.readInt32(); const String16 opPackageName = data.readString16(); pid_t pid = (pid_t)data.readInt32(); status_t status = NO_ERROR; int id = 0; int enabled = 0; sp<IEffect> effect = createEffect(&desc, client, priority, output, sessionId, opPackageName, &status, &id, &enabled); opPackageName, pid, &status, &id, &enabled); reply->writeInt32(status); reply->writeInt32(id); reply->writeInt32(enabled); Loading services/audioflinger/AudioFlinger.cpp +10 −1 Original line number Diff line number Diff line Loading @@ -2606,6 +2606,7 @@ sp<IEffect> AudioFlinger::createEffect( audio_io_handle_t io, audio_session_t sessionId, const String16& opPackageName, pid_t pid, status_t *status, int *id, int *enabled) Loading @@ -2614,7 +2615,15 @@ sp<IEffect> AudioFlinger::createEffect( sp<EffectHandle> handle; effect_descriptor_t desc; pid_t pid = IPCThreadState::self()->getCallingPid(); const uid_t callingUid = IPCThreadState::self()->getCallingUid(); if (pid == -1 || !isTrustedCallingUid(callingUid)) { const pid_t callingPid = IPCThreadState::self()->getCallingPid(); ALOGW_IF(pid != -1 && pid != callingPid, "%s uid %d pid %d tried to pass itself off as pid %d", __func__, callingUid, callingPid, pid); pid = callingPid; } ALOGV("createEffect pid %d, effectClient %p, priority %d, sessionId %d, io %d, factory %p", pid, effectClient.get(), priority, sessionId, io, mEffectsFactoryHal.get()); Loading services/audioflinger/AudioFlinger.h +1 −0 Original line number Diff line number Diff line Loading @@ -224,6 +224,7 @@ public: audio_io_handle_t io, audio_session_t sessionId, const String16& opPackageName, pid_t pid, status_t *status /*non-NULL*/, int *id, int *enabled); Loading Loading
include/media/IAudioFlinger.h +1 −0 Original line number Diff line number Diff line Loading @@ -196,6 +196,7 @@ public: audio_io_handle_t output, audio_session_t sessionId, const String16& callingPackage, pid_t pid, status_t *status, int *id, int *enabled) = 0; Loading
media/libaudioclient/AudioEffect.cpp +3 −2 Original line number Diff line number Diff line Loading @@ -128,9 +128,11 @@ status_t AudioEffect::set(const effect_uuid_t *type, mDescriptor.uuid = *(uuid != NULL ? uuid : EFFECT_UUID_NULL); mIEffectClient = new EffectClient(this); mClientPid = IPCThreadState::self()->getCallingPid(); iEffect = audioFlinger->createEffect((effect_descriptor_t *)&mDescriptor, mIEffectClient, priority, io, mSessionId, mOpPackageName, &mStatus, &mId, &enabled); mIEffectClient, priority, io, mSessionId, mOpPackageName, mClientPid, &mStatus, &mId, &enabled); if (iEffect == 0 || (mStatus != NO_ERROR && mStatus != ALREADY_EXISTS)) { ALOGE("set(): AudioFlinger could not create effect, status: %d", mStatus); Loading @@ -156,7 +158,6 @@ status_t AudioEffect::set(const effect_uuid_t *type, mCblk->buffer = (uint8_t *)mCblk + bufOffset; IInterface::asBinder(iEffect)->linkToDeath(mIEffectClient); mClientPid = IPCThreadState::self()->getCallingPid(); ALOGV("set() %p OK effect: %s id: %d status %d enabled %d pid %d", this, mDescriptor.name, mId, mStatus, mEnabled, mClientPid); Loading
media/libaudioclient/IAudioFlinger.cpp +5 −1 Original line number Diff line number Diff line Loading @@ -716,6 +716,7 @@ public: audio_io_handle_t output, audio_session_t sessionId, const String16& opPackageName, pid_t pid, status_t *status, int *id, int *enabled) Loading @@ -737,6 +738,7 @@ public: data.writeInt32((int32_t) output); data.writeInt32(sessionId); data.writeString16(opPackageName); data.writeInt32((int32_t) pid); status_t lStatus = remote()->transact(CREATE_EFFECT, data, &reply); if (lStatus != NO_ERROR) { Loading Loading @@ -1294,12 +1296,14 @@ status_t BnAudioFlinger::onTransact( audio_io_handle_t output = (audio_io_handle_t) data.readInt32(); audio_session_t sessionId = (audio_session_t) data.readInt32(); const String16 opPackageName = data.readString16(); pid_t pid = (pid_t)data.readInt32(); status_t status = NO_ERROR; int id = 0; int enabled = 0; sp<IEffect> effect = createEffect(&desc, client, priority, output, sessionId, opPackageName, &status, &id, &enabled); opPackageName, pid, &status, &id, &enabled); reply->writeInt32(status); reply->writeInt32(id); reply->writeInt32(enabled); Loading
services/audioflinger/AudioFlinger.cpp +10 −1 Original line number Diff line number Diff line Loading @@ -2606,6 +2606,7 @@ sp<IEffect> AudioFlinger::createEffect( audio_io_handle_t io, audio_session_t sessionId, const String16& opPackageName, pid_t pid, status_t *status, int *id, int *enabled) Loading @@ -2614,7 +2615,15 @@ sp<IEffect> AudioFlinger::createEffect( sp<EffectHandle> handle; effect_descriptor_t desc; pid_t pid = IPCThreadState::self()->getCallingPid(); const uid_t callingUid = IPCThreadState::self()->getCallingUid(); if (pid == -1 || !isTrustedCallingUid(callingUid)) { const pid_t callingPid = IPCThreadState::self()->getCallingPid(); ALOGW_IF(pid != -1 && pid != callingPid, "%s uid %d pid %d tried to pass itself off as pid %d", __func__, callingUid, callingPid, pid); pid = callingPid; } ALOGV("createEffect pid %d, effectClient %p, priority %d, sessionId %d, io %d, factory %p", pid, effectClient.get(), priority, sessionId, io, mEffectsFactoryHal.get()); Loading
services/audioflinger/AudioFlinger.h +1 −0 Original line number Diff line number Diff line Loading @@ -224,6 +224,7 @@ public: audio_io_handle_t io, audio_session_t sessionId, const String16& opPackageName, pid_t pid, status_t *status /*non-NULL*/, int *id, int *enabled); Loading