From d2c00b4b6d506104bbdb8e9e5d2f609bb4428bd8 Mon Sep 17 00:00:00 2001 From: Niel Alejandro Paz Date: Mon, 15 Jun 2015 13:14:39 -0500 Subject: Validation of Number of Channels on WAV files. Corrects the validation of the number of channels that was causing a floating point exception when this number is zero. It also corrects the range of admitted channels on WAV files. Change-Id: I21f005d1f30c1fd93206c6bce0d3be4b8307059c Signed-off-by: Niel Alejandro Paz Signed-off-by: Vineela Tummalapalli Signed-off-by: Zhiquan Liu --- media/libstagefright/WAVExtractor.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'media/libstagefright/WAVExtractor.cpp') diff --git a/media/libstagefright/WAVExtractor.cpp b/media/libstagefright/WAVExtractor.cpp index b988f19..cc1d7ce 100644 --- a/media/libstagefright/WAVExtractor.cpp +++ b/media/libstagefright/WAVExtractor.cpp @@ -194,17 +194,17 @@ status_t WAVExtractor::init() { } mNumChannels = U16_LE_AT(&formatSpec[2]); + + if (mNumChannels < 1 || mNumChannels > 8) { + ALOGE("Unsupported number of channels (%d)", mNumChannels); + return ERROR_UNSUPPORTED; + } + if (mWaveFormat != WAVE_FORMAT_EXTENSIBLE) { - if (mNumChannels == 0) { - return ERROR_UNSUPPORTED; - } else if (mNumChannels != 1 && mNumChannels != 2) { + 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) { - return ERROR_UNSUPPORTED; - } } mSampleRate = U32_LE_AT(&formatSpec[4]); -- cgit v1.1