diff options
author | Anssi Hannula <anssi.hannula@iki.fi> | 2014-12-31 04:51:19 +0200 |
---|---|---|
committer | Anssi Hannula <anssi.hannula@iki.fi> | 2014-12-31 04:51:19 +0200 |
commit | 054ad1a9365a17e1b54fde10e1b72e5662f7f982 (patch) | |
tree | 45be7a9718a2f7dc00ac93fd26a5f24ce0366cea | |
parent | a684387aa15c5980667adcb510796c982babbb75 (diff) | |
parent | 957f8e2474ce733d9d05cb67b62721e9b3b1c389 (diff) |
Merge pull request #6065 from anssih/fix/AE-ticket15641
AESinkALSA: Workaround alsa-lib buffer overflow in snd_pcm_chmap_print
-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); |