Check for null params in VolumeShaper
Test: m media_player_service_fuzzer && adb sync data && adb shell /data/fuzz/arm64/media_player_service_fuzzer/media_player_service_fuzzer
Bug: 289674996
Change-Id: I3f31abc324914725f106fbdbab65922c741bf980
diff --git a/include/media/VolumeShaper.h b/include/media/VolumeShaper.h
index 5271e10..6208db3 100644
--- a/include/media/VolumeShaper.h
+++ b/include/media/VolumeShaper.h
@@ -1099,7 +1099,7 @@
* internal to the VolumeHandler.
*/
void setIdIfNecessary(const sp<VolumeShaper::Configuration> &configuration) {
- if (configuration->getType() == VolumeShaper::Configuration::TYPE_SCALE) {
+ if (configuration && configuration->getType() == VolumeShaper::Configuration::TYPE_SCALE) {
const int id = configuration->getId();
if (id == -1) {
// Reassign to a unique id, skipping system ids.
diff --git a/media/libmediaplayerservice/MediaPlayerService.cpp b/media/libmediaplayerservice/MediaPlayerService.cpp
index 075c385..c08da0f 100644
--- a/media/libmediaplayerservice/MediaPlayerService.cpp
+++ b/media/libmediaplayerservice/MediaPlayerService.cpp
@@ -2611,6 +2611,16 @@
Mutex::Autolock lock(mLock);
ALOGV("AudioOutput::applyVolumeShaper");
+ if (configuration == nullptr) {
+ ALOGE("AudioOutput::applyVolumeShaper Null configuration parameter");
+ return VolumeShaper::Status(BAD_VALUE);
+ }
+
+ if (operation == nullptr) {
+ ALOGE("AudioOutput::applyVolumeShaper Null operation parameter");
+ return VolumeShaper::Status(BAD_VALUE);
+ }
+
mVolumeHandler->setIdIfNecessary(configuration);
VolumeShaper::Status status;