From a73dfa7c63b82e25f93e44ed6386664373aaca74 Mon Sep 17 00:00:00 2001 From: Robin Burchell Date: Wed, 7 Nov 2012 23:23:45 +0100 Subject: Fix a possible crash in QSoundEffect. pa_stream_cork may fail, and pa_operation_unref won't handle that gracefully, so check the return value before unreffing. Done-with: Vesa-Matti Hartikainen Change-Id: If789e37a13f85487c79dd8a03a7ca3624b1412d2 Reviewed-by: Shawn Rutledge Reviewed-by: Andras Becsi --- src/multimedia/audio/qsoundeffect_pulse_p.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/multimedia') diff --git a/src/multimedia/audio/qsoundeffect_pulse_p.cpp b/src/multimedia/audio/qsoundeffect_pulse_p.cpp index a1010fa46..3546c86b2 100644 --- a/src/multimedia/audio/qsoundeffect_pulse_p.cpp +++ b/src/multimedia/audio/qsoundeffect_pulse_p.cpp @@ -838,7 +838,9 @@ void QSoundEffectPrivate::playSample() #endif Q_ASSERT(m_pulseStream); Q_ASSERT(pa_stream_get_state(m_pulseStream) == PA_STREAM_READY); - pa_operation_unref(pa_stream_cork(m_pulseStream, 0, 0, 0)); + pa_operation *o = pa_stream_cork(m_pulseStream, 0, 0, 0); + if (o) + pa_operation_unref(o); } void QSoundEffectPrivate::stop() -- cgit v1.2.3