]> git.alsa-project.org Git - alsa-utils.git/commitdiff
aplay: Limit VUMeter progress bar to 100 for negative as well
authorRosen Penev <rosenp@gmail.com>
Wed, 20 Nov 2019 19:13:55 +0000 (11:13 -0800)
committerTakashi Iwai <tiwai@suse.de>
Wed, 20 Nov 2019 21:01:26 +0000 (22:01 +0100)
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>
aplay/aplay.c

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