audio flinger: add check in getInputBufferSize()
Make sure that the sample rate passed to getInputBufferSize()
is not 0 to avoid divide by 0 in destinationFramesPossible()
Also check the channel mask parameter for validity.
bug: 26866012
Change-Id: Ifabbf56cadb0db104f99230cacdba30e0c6a0a3a
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index f4bd1c4..6f34271 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -1161,7 +1161,9 @@
if (ret != NO_ERROR) {
return 0;
}
- if (!audio_is_valid_format(format) || !audio_is_linear_pcm(format)) {
+ if ((sampleRate == 0) ||
+ !audio_is_valid_format(format) || !audio_is_linear_pcm(format) ||
+ !audio_is_input_channel(channelMask)) {
return 0;
}