summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVaL Doroshchuk <valentyn.doroshchuk@qt.io>2018-09-03 11:22:11 +0200
committerVaL Doroshchuk <valentyn.doroshchuk@qt.io>2018-09-13 13:34:44 +0000
commit2c5efb49495e31afa399a1c1ea003a9b630ba113 (patch)
treea0693f62cd3f256c0a3dfc85fede82e0f0a7ad37 /src
parente9aa969c8cc2226081326e8e1d01f0044fcd7411 (diff)
Pulse: Fix crash when stop() is called while reading buffers
Since reading from QIODevice can be reimplemented on user side, it can call QAudioOutput::stop() which will free resources. This will produce a crash in QPulseAudioOutput::userFeed() when it will attempt to write buffers. Task-number: QTBUG-69734 Change-Id: Ifa43ba52bb01bb40939730461615a9d182ffcc9b Reviewed-by: Christian Stromme <christian.stromme@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/pulseaudio/qaudiooutput_pulse.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/plugins/pulseaudio/qaudiooutput_pulse.cpp b/src/plugins/pulseaudio/qaudiooutput_pulse.cpp
index 38cf54979..ea7a2be0c 100644
--- a/src/plugins/pulseaudio/qaudiooutput_pulse.cpp
+++ b/src/plugins/pulseaudio/qaudiooutput_pulse.cpp
@@ -447,7 +447,7 @@ void QPulseAudioOutput::userFeed()
int audioBytesPulled = m_audioSource->read(m_audioBuffer, input);
Q_ASSERT(audioBytesPulled <= input);
- if (audioBytesPulled > 0) {
+ if (m_audioBuffer && audioBytesPulled > 0) {
if (audioBytesPulled > input) {
qWarning() << "QPulseAudioOutput::userFeed() - Invalid audio data size provided from user:"
<< audioBytesPulled << "should be less than" << input;