From 34b57aed6a544f9af1038e00d46cca8e5d9d545b Mon Sep 17 00:00:00 2001 From: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com> Date: Tue, 6 Jun 2017 13:42:19 -0400 Subject: [PATCH] AudioStream: fix invalid memory access Fix AudioStream::getDeviceName() that calls pa_stream_get_device_name() without checking the return value. This last can be the error -PA_ERR_NOTSUPPORTED or null for other issues. In such cases we return an empty string. Change-Id: Ia293ff8d93212d87c8fa5e6ce8399964044d530f --- src/media/audio/pulseaudio/audiostream.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/media/audio/pulseaudio/audiostream.h b/src/media/audio/pulseaudio/audiostream.h index 7dc6bd2384..d14f90f5b0 100644 --- a/src/media/audio/pulseaudio/audiostream.h +++ b/src/media/audio/pulseaudio/audiostream.h @@ -83,7 +83,10 @@ class AudioStream { } inline std::string getDeviceName() const { - return pa_stream_get_device_name(audiostream_); + auto res = pa_stream_get_device_name(audiostream_); + if (res == reinterpret_cast<decltype(res)>(-PA_ERR_NOTSUPPORTED) or !res) + return {}; + return res; } bool isReady(); -- GitLab