diff options
author | Robert Shih <robertshih@google.com> | 2015-09-02 16:46:59 -0700 |
---|---|---|
committer | The Android Automerger <android-build@google.com> | 2015-09-28 17:08:17 -0700 |
commit | 0ddd3f4a20e13914b5a4253d38b6887557f2ca1d (patch) | |
tree | 9cae85a5ab5e1f2b2ace37f95c7f110e768984fe | |
parent | 229338ad56771edf3a65355f97e872d0cbe9230f (diff) | |
download | frameworks_av-0ddd3f4a20e13914b5a4253d38b6887557f2ca1d.zip frameworks_av-0ddd3f4a20e13914b5a4253d38b6887557f2ca1d.tar.gz frameworks_av-0ddd3f4a20e13914b5a4253d38b6887557f2ca1d.tar.bz2 |
Zero out return values in media binder calls
More specifically when handling:
* GET_STREAM_VOLUME in IAudioPolicyService, and
* GET_CURRENT_POSITION and GET_DURATION in IMediaPlayer
This prevents leaking uninitialized values across binder in error cases.
Bug: 23756261
Change-Id: I0ffd900ab12b685b0611259ade4a3efb1ec5defe
-rw-r--r-- | media/libmedia/IAudioPolicyService.cpp | 2 | ||||
-rw-r--r-- | media/libmedia/IMediaPlayer.cpp | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/media/libmedia/IAudioPolicyService.cpp b/media/libmedia/IAudioPolicyService.cpp index 3348441..baa5c7d 100644 --- a/media/libmedia/IAudioPolicyService.cpp +++ b/media/libmedia/IAudioPolicyService.cpp @@ -994,7 +994,7 @@ status_t BnAudioPolicyService::onTransact( audio_stream_type_t stream = static_cast <audio_stream_type_t>(data.readInt32()); audio_devices_t device = static_cast <audio_devices_t>(data.readInt32()); - int index; + int index = 0; status_t status = getStreamVolumeIndex(stream, &index, device); reply->writeInt32(index); reply->writeInt32(static_cast <uint32_t>(status)); diff --git a/media/libmedia/IMediaPlayer.cpp b/media/libmedia/IMediaPlayer.cpp index 7387a79..942aec3 100644 --- a/media/libmedia/IMediaPlayer.cpp +++ b/media/libmedia/IMediaPlayer.cpp @@ -566,7 +566,7 @@ status_t BnMediaPlayer::onTransact( } break; case GET_CURRENT_POSITION: { CHECK_INTERFACE(IMediaPlayer, data, reply); - int msec; + int msec = 0; status_t ret = getCurrentPosition(&msec); reply->writeInt32(msec); reply->writeInt32(ret); @@ -574,7 +574,7 @@ status_t BnMediaPlayer::onTransact( } break; case GET_DURATION: { CHECK_INTERFACE(IMediaPlayer, data, reply); - int msec; + int msec = 0; status_t ret = getDuration(&msec); reply->writeInt32(msec); reply->writeInt32(ret); |