summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/WAVExtractor.cpp
diff options
context:
space:
mode:
authorRoger I Nilsson <roger2.nilsson@sonymobile.com>2015-06-10 14:42:39 +0200
committerSteve Kondik <steve@cyngn.com>2015-11-07 01:53:37 -0800
commit5578af3e988193aae89a2f990f930ae756c34785 (patch)
treec3f375167790f1ae60370d0af4253e9620d70cc7 /media/libstagefright/WAVExtractor.cpp
parentdf287f605d5fcc75f439411917bfd9e1d82c7f1a (diff)
downloadframeworks_av-5578af3e988193aae89a2f990f930ae756c34785.zip
frameworks_av-5578af3e988193aae89a2f990f930ae756c34785.tar.gz
frameworks_av-5578af3e988193aae89a2f990f930ae756c34785.tar.bz2
Remove possible div by zero in WavExtractor
Do not accept 0 channels as a valid wav format. Change-Id: I8d03d68f58d023b039503732736cc3a82ea560eb
Diffstat (limited to 'media/libstagefright/WAVExtractor.cpp')
-rw-r--r--media/libstagefright/WAVExtractor.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/media/libstagefright/WAVExtractor.cpp b/media/libstagefright/WAVExtractor.cpp
index d86dffb..b988f19 100644
--- a/media/libstagefright/WAVExtractor.cpp
+++ b/media/libstagefright/WAVExtractor.cpp
@@ -195,12 +195,14 @@ status_t WAVExtractor::init() {
mNumChannels = U16_LE_AT(&formatSpec[2]);
if (mWaveFormat != WAVE_FORMAT_EXTENSIBLE) {
- if (mNumChannels != 1 && mNumChannels != 2) {
+ if (mNumChannels == 0) {
+ return ERROR_UNSUPPORTED;
+ } else if (mNumChannels != 1 && mNumChannels != 2) {
ALOGW("More than 2 channels (%d) in non-WAVE_EXT, unknown channel mask",
mNumChannels);
}
} else {
- if (mNumChannels < 1 && mNumChannels > 8) {
+ if (mNumChannels < 1 || mNumChannels > 8) {
return ERROR_UNSUPPORTED;
}
}