aplay: Limit VUMeter progress bar to 100 for negative as well

While the progress bar cannot be negative, GCC concludes that it can be
and assumes tmp can be written past the end. Fixes this GCC warning:

aplay.c:1747:18: warning: '%02d' directive writing between 2 and 11 bytes
 into a region of size 4 [-Wformat-overflow=]
 1747 |    sprintf(tmp, "%02d%%", maxperc[c]);

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Rosen Penev 2019-11-20 11:13:55 -08:00 committed by Takashi Iwai
parent ac82b65167
commit c9dc401264

View file

@ -54,6 +54,8 @@
#include "formats.h" #include "formats.h"
#include "version.h" #include "version.h"
#define ABS(a) (a) < 0 ? -(a) : (a)
#ifdef SND_CHMAP_API_VERSION #ifdef SND_CHMAP_API_VERSION
#define CONFIG_SUPPORT_CHMAP 1 #define CONFIG_SUPPORT_CHMAP 1
#endif #endif
@ -1741,7 +1743,7 @@ static void print_vu_meter_stereo(int *perc, int *maxperc)
line[bar_length + 6 + 1 + p] = '+'; line[bar_length + 6 + 1 + p] = '+';
else else
line[bar_length - p - 1] = '+'; line[bar_length - p - 1] = '+';
if (maxperc[c] > 99) if (ABS(maxperc[c]) > 99)
sprintf(tmp, "MAX"); sprintf(tmp, "MAX");
else else
sprintf(tmp, "%02d%%", maxperc[c]); sprintf(tmp, "%02d%%", maxperc[c]);