diff options
-rw-r--r-- | xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp index d30cbabce7..df50940afc 100644 --- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp +++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp @@ -338,8 +338,10 @@ snd_pcm_chmap_t* CAESinkALSA::CopyALSAchmap(snd_pcm_chmap_t* alsaMap) std::string CAESinkALSA::ALSAchmapToString(snd_pcm_chmap_t* alsaMap) { - char buf[64] = { 0 }; - int err = snd_pcm_chmap_print(alsaMap, sizeof(buf), buf); + char buf[128] = { 0 }; + // ALSA bug - buffer overflow by a factor of 2 is possible + // http://mailman.alsa-project.org/pipermail/alsa-devel/2014-December/085815.html + int err = snd_pcm_chmap_print(alsaMap, sizeof(buf) / 2, buf); if (err < 0) return "Error"; return std::string(buf); |