CSD: Fix possible crash when accessing nullptr
The output sink can be cleared before calling
start/stopMelComputation_l. Add check for nullptr.
Test: SoundDoseInteractiveTest
Bug: 271013496
Bug: 273898338
Change-Id: I5778de2ebadab770dab5d9f8a6613b1144cc3fe5
diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp
index 694b846..e113efb 100644
--- a/services/audioflinger/Threads.cpp
+++ b/services/audioflinger/Threads.cpp
@@ -3488,14 +3488,18 @@
const sp<audio_utils::MelProcessor>& processor)
{
auto outputSink = static_cast<AudioStreamOutSink*>(mOutputSink.get());
- outputSink->startMelComputation(processor);
+ if (outputSink != nullptr) {
+ outputSink->startMelComputation(processor);
+ }
}
// stopMelComputation_l() must be called with AudioFlinger::mLock held
void AudioFlinger::PlaybackThread::stopMelComputation_l()
{
auto outputSink = static_cast<AudioStreamOutSink*>(mOutputSink.get());
- outputSink->stopMelComputation();
+ if (outputSink != nullptr) {
+ outputSink->stopMelComputation();
+ }
}
void AudioFlinger::PlaybackThread::threadLoop_drain()