2023-10-08 06:40:21

by Su Hui

[permalink] [raw]
Subject: [PATCH] f2fs: avoid format-overflow warning

With gcc and W=1 option, there's a warning like this:

fs/f2fs/compress.c: In function ‘f2fs_init_page_array_cache’:
fs/f2fs/compress.c:1984:47: error: ‘%u’ directive writing between
1 and 7 bytes into a region of size between 5 and 8
[-Werror=format-overflow=]
1984 | sprintf(slab_name, "f2fs_page_array_entry-%u:%u", MAJOR(dev),
MINOR(dev));
| ^~

String "f2fs_page_array_entry-%u:%u" can up to 35. The first "%u" can up
to 4 and the second "%u" can up to 7, so total size is "24 + 4 + 7 = 35".
slab_name's size should be 35 rather than 32.

Signed-off-by: Su Hui <[email protected]>
---
fs/f2fs/compress.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c
index d820801f473e..7514661bbfbb 100644
--- a/fs/f2fs/compress.c
+++ b/fs/f2fs/compress.c
@@ -1976,7 +1976,7 @@ void f2fs_destroy_compress_inode(struct f2fs_sb_info *sbi)
int f2fs_init_page_array_cache(struct f2fs_sb_info *sbi)
{
dev_t dev = sbi->sb->s_bdev->bd_dev;
- char slab_name[32];
+ char slab_name[35];

if (!f2fs_sb_has_compression(sbi))
return 0;
--
2.30.2


2023-10-08 06:47:00

by Chao Yu

[permalink] [raw]
Subject: Re: [PATCH] f2fs: avoid format-overflow warning

On 2023/10/8 14:39, Su Hui wrote:
> With gcc and W=1 option, there's a warning like this:
>
> fs/f2fs/compress.c: In function ‘f2fs_init_page_array_cache’:
> fs/f2fs/compress.c:1984:47: error: ‘%u’ directive writing between
> 1 and 7 bytes into a region of size between 5 and 8
> [-Werror=format-overflow=]
> 1984 | sprintf(slab_name, "f2fs_page_array_entry-%u:%u", MAJOR(dev),
> MINOR(dev));
> | ^~
>
> String "f2fs_page_array_entry-%u:%u" can up to 35. The first "%u" can up
> to 4 and the second "%u" can up to 7, so total size is "24 + 4 + 7 = 35".
> slab_name's size should be 35 rather than 32.
>
> Signed-off-by: Su Hui <[email protected]>

Looks good to me, thanks for the patch.

Reviewed-by: Chao Yu <[email protected]>

Thanks,