Loading include/media/IAudioPolicyService.h +2 −0 Original line number Diff line number Diff line Loading @@ -181,6 +181,8 @@ public: const Parcel& data, Parcel* reply, uint32_t flags = 0); private: void sanetizeAudioAttributes(audio_attributes_t* attr); }; // ---------------------------------------------------------------------------- Loading media/libmedia/IAudioPolicyService.cpp +12 −0 Original line number Diff line number Diff line Loading @@ -893,6 +893,7 @@ status_t BnAudioPolicyService::onTransact( bool hasAttributes = data.readInt32() != 0; if (hasAttributes) { data.read(&attr, sizeof(audio_attributes_t)); sanetizeAudioAttributes(&attr); } audio_session_t session = (audio_session_t)data.readInt32(); audio_stream_type_t stream = AUDIO_STREAM_DEFAULT; Loading Loading @@ -960,6 +961,7 @@ status_t BnAudioPolicyService::onTransact( CHECK_INTERFACE(IAudioPolicyService, data, reply); audio_attributes_t attr; data.read(&attr, sizeof(audio_attributes_t)); sanetizeAudioAttributes(&attr); audio_session_t session = (audio_session_t)data.readInt32(); pid_t pid = (pid_t)data.readInt32(); uid_t uid = (uid_t)data.readInt32(); Loading Loading @@ -1332,6 +1334,7 @@ status_t BnAudioPolicyService::onTransact( data.read(&source, sizeof(struct audio_port_config)); audio_attributes_t attributes; data.read(&attributes, sizeof(audio_attributes_t)); sanetizeAudioAttributes(&attributes); audio_io_handle_t handle = {}; status_t status = startAudioSource(&source, &attributes, &handle); reply->writeInt32(status); Loading Loading @@ -1371,6 +1374,15 @@ status_t BnAudioPolicyService::onTransact( } } void BnAudioPolicyService::sanetizeAudioAttributes(audio_attributes_t* attr) { const size_t tagsMaxSize = AUDIO_ATTRIBUTES_TAGS_MAX_SIZE; if (strnlen(attr->tags, tagsMaxSize) >= tagsMaxSize) { android_errorWriteLog(0x534e4554, "68953950"); // SafetyNet logging } attr->tags[tagsMaxSize - 1] = '\0'; } // ---------------------------------------------------------------------------- } // namespace android Loading
include/media/IAudioPolicyService.h +2 −0 Original line number Diff line number Diff line Loading @@ -181,6 +181,8 @@ public: const Parcel& data, Parcel* reply, uint32_t flags = 0); private: void sanetizeAudioAttributes(audio_attributes_t* attr); }; // ---------------------------------------------------------------------------- Loading
media/libmedia/IAudioPolicyService.cpp +12 −0 Original line number Diff line number Diff line Loading @@ -893,6 +893,7 @@ status_t BnAudioPolicyService::onTransact( bool hasAttributes = data.readInt32() != 0; if (hasAttributes) { data.read(&attr, sizeof(audio_attributes_t)); sanetizeAudioAttributes(&attr); } audio_session_t session = (audio_session_t)data.readInt32(); audio_stream_type_t stream = AUDIO_STREAM_DEFAULT; Loading Loading @@ -960,6 +961,7 @@ status_t BnAudioPolicyService::onTransact( CHECK_INTERFACE(IAudioPolicyService, data, reply); audio_attributes_t attr; data.read(&attr, sizeof(audio_attributes_t)); sanetizeAudioAttributes(&attr); audio_session_t session = (audio_session_t)data.readInt32(); pid_t pid = (pid_t)data.readInt32(); uid_t uid = (uid_t)data.readInt32(); Loading Loading @@ -1332,6 +1334,7 @@ status_t BnAudioPolicyService::onTransact( data.read(&source, sizeof(struct audio_port_config)); audio_attributes_t attributes; data.read(&attributes, sizeof(audio_attributes_t)); sanetizeAudioAttributes(&attributes); audio_io_handle_t handle = {}; status_t status = startAudioSource(&source, &attributes, &handle); reply->writeInt32(status); Loading Loading @@ -1371,6 +1374,15 @@ status_t BnAudioPolicyService::onTransact( } } void BnAudioPolicyService::sanetizeAudioAttributes(audio_attributes_t* attr) { const size_t tagsMaxSize = AUDIO_ATTRIBUTES_TAGS_MAX_SIZE; if (strnlen(attr->tags, tagsMaxSize) >= tagsMaxSize) { android_errorWriteLog(0x534e4554, "68953950"); // SafetyNet logging } attr->tags[tagsMaxSize - 1] = '\0'; } // ---------------------------------------------------------------------------- } // namespace android