diff mbox series

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

Message ID 20191120191355.260198-1-rosenp@gmail.com (mailing list archive)
State New, archived
Headers show
Series [PATCHv2] aplay: Limit VUMeter progress bar to 100 for negative as well | expand

Commit Message

Rosen Penev Nov. 20, 2019, 7:13 p.m. UTC
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>
---
 v2: Reworded
 aplay/aplay.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Takashi Iwai Nov. 20, 2019, 9:02 p.m. UTC | #1
On Wed, 20 Nov 2019 20:13:55 +0100,
Rosen Penev wrote:
> 
> 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>

Applied, thanks.


Takashi
diff mbox series

Patch

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]);