using gcc and w=1, there are some warnings like these:
block/blk-throttle.c:1531:53: error:
‘snprintf’ output may be truncated before the last format character
[-Werror=format-truncation=]
1531 | snprintf(idle_time, sizeof(idle_time), " idle=%lu",
| ^
block/blk-throttle.c:1531:4: note: ‘snprintf’ output between 8 and 27 bytes
into a destination of size 26
1531 | snprintf(idle_time, sizeof(idle_time), " idle=%lu",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1532 | tg->idletime_threshold_conf);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
block/blk-throttle.c:1538:15: error:
‘%lu’ directive output may be truncated writing between 1 and 20 bytes
into a region of size 17 [-Werror=format-truncation=]
1538 | " latency=%lu", tg->latency_target_conf);
| ^~~
"%lu" can up to 21, so string " idle=%lu" can up to 27. But 'idle_time'
only has 26 Bytes. It's same for 'latency_time' whose size should be 30
rather than 26 because string " latency=%lu" can up to 30.
Signed-off-by: Su Hui <[email protected]>
---
block/blk-throttle.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/block/blk-throttle.c b/block/blk-throttle.c
index 38a881cf97d0..dfc5c0d3d9c1 100644
--- a/block/blk-throttle.c
+++ b/block/blk-throttle.c
@@ -1489,8 +1489,8 @@ static u64 tg_prfill_limit(struct seq_file *sf, struct blkg_policy_data *pd,
char bufs[4][21] = { "max", "max", "max", "max" };
u64 bps_dft;
unsigned int iops_dft;
- char idle_time[26] = "";
- char latency_time[26] = "";
+ char idle_time[27] = "";
+ char latency_time[30] = "";
if (!dname)
return 0;
--
2.30.2