[alsa-devel] [PATCHv2] aplay: Limit VUMeter progress bar to 100 for negative as well
Rosen Penev
rosenp at gmail.com
Wed Nov 20 20:12:40 CET 2019
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 at gmail.com>
---
v2: Reworded
aplay/aplay.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/aplay/aplay.c b/aplay/aplay.c
index 78adee2..1a887e4 100644
--- a/aplay/aplay.c
+++ b/aplay/aplay.c
@@ -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]);
--
2.23.0
More information about the Alsa-devel
mailing list