aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp6
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);