* [f2fs-dev] [PATCH] fsck.f2fs: fix to avoid using uninitialized buffer
@ 2025-06-03 7:26 Chao Yu via Linux-f2fs-devel
2025-06-03 16:52 ` Daeho Jeong
0 siblings, 1 reply; 3+ messages in thread
From: Chao Yu via Linux-f2fs-devel @ 2025-06-03 7:26 UTC (permalink / raw)
To: jaegeuk; +Cc: Daeho Jeong, linux-f2fs-devel
fsck.c: In function ‘chk_and_fix_wp_with_sit’:
fsck.c:3529:17: error: variable-sized object may not be initialized
3529 | char buffer[F2FS_BLKSIZE] = {};
| ^~~~
The reason is F2FS_BLKSIZE macro is defined w/ c.blksize, let's use
calloc() to allocate zeroed memory to fix this issue.
Cc: Daeho Jeong <daehojeong@google.com>
Signed-off-by: Chao Yu <chao@kernel.org>
---
fsck/fsck.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/fsck/fsck.c b/fsck/fsck.c
index 4d05e1b..bb39f8b 100644
--- a/fsck/fsck.c
+++ b/fsck/fsck.c
@@ -3526,7 +3526,7 @@ static int chk_and_fix_wp_with_sit(int UNUSED(i), void *blkzone, void *opaque)
ret = f2fs_finish_zone(wpd->dev_index, blkz);
if (ret) {
- u8 buffer[F2FS_BLKSIZE] = {};
+ u8 *buffer;
u64 blk_addr = wp_block;
u64 fill_sects = blk_zone_length(blkz) -
(blk_zone_wp_sector(blkz) - blk_zone_sector(blkz));
@@ -3534,6 +3534,9 @@ static int chk_and_fix_wp_with_sit(int UNUSED(i), void *blkzone, void *opaque)
struct seg_entry *se = get_seg_entry(sbi, wp_segno);
enum rw_hint whint = f2fs_io_type_to_rw_hint(se->type);
+ buffer = calloc(F2FS_BLKSIZE, 1);
+ ASSERT(buffer);
+
printf("[FSCK] Finishing zone failed: %s\n", dev->path);
while (len--) {
ret = dev_fill_block(buffer, blk_addr++, whint);
@@ -3542,6 +3545,8 @@ static int chk_and_fix_wp_with_sit(int UNUSED(i), void *blkzone, void *opaque)
break;
}
}
+
+ free(buffer);
}
if (!ret)
--
2.40.1
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [f2fs-dev] [PATCH] fsck.f2fs: fix to avoid using uninitialized buffer
2025-06-03 7:26 [f2fs-dev] [PATCH] fsck.f2fs: fix to avoid using uninitialized buffer Chao Yu via Linux-f2fs-devel
@ 2025-06-03 16:52 ` Daeho Jeong
2025-06-03 16:54 ` Daeho Jeong
0 siblings, 1 reply; 3+ messages in thread
From: Daeho Jeong @ 2025-06-03 16:52 UTC (permalink / raw)
To: Chao Yu; +Cc: jaegeuk, Daeho Jeong, linux-f2fs-devel
On Tue, Jun 3, 2025 at 12:29 AM Chao Yu via Linux-f2fs-devel
<linux-f2fs-devel@lists.sourceforge.net> wrote:
>
> fsck.c: In function ‘chk_and_fix_wp_with_sit’:
> fsck.c:3529:17: error: variable-sized object may not be initialized
> 3529 | char buffer[F2FS_BLKSIZE] = {};
> | ^~~~
>
> The reason is F2FS_BLKSIZE macro is defined w/ c.blksize, let's use
> calloc() to allocate zeroed memory to fix this issue.
>
> Cc: Daeho Jeong <daehojeong@google.com>
> Signed-off-by: Chao Yu <chao@kernel.org>
> ---
> fsck/fsck.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/fsck/fsck.c b/fsck/fsck.c
> index 4d05e1b..bb39f8b 100644
> --- a/fsck/fsck.c
> +++ b/fsck/fsck.c
> @@ -3526,7 +3526,7 @@ static int chk_and_fix_wp_with_sit(int UNUSED(i), void *blkzone, void *opaque)
>
> ret = f2fs_finish_zone(wpd->dev_index, blkz);
> if (ret) {
> - u8 buffer[F2FS_BLKSIZE] = {};
> + u8 *buffer;
> u64 blk_addr = wp_block;
> u64 fill_sects = blk_zone_length(blkz) -
> (blk_zone_wp_sector(blkz) - blk_zone_sector(blkz));
> @@ -3534,6 +3534,9 @@ static int chk_and_fix_wp_with_sit(int UNUSED(i), void *blkzone, void *opaque)
> struct seg_entry *se = get_seg_entry(sbi, wp_segno);
> enum rw_hint whint = f2fs_io_type_to_rw_hint(se->type);
>
> + buffer = calloc(F2FS_BLKSIZE, 1);
> + ASSERT(buffer);
> +
> printf("[FSCK] Finishing zone failed: %s\n", dev->path);
> while (len--) {
> ret = dev_fill_block(buffer, blk_addr++, whint);
> @@ -3542,6 +3545,8 @@ static int chk_and_fix_wp_with_sit(int UNUSED(i), void *blkzone, void *opaque)
> break;
> }
> }
> +
> + free(buffer);
> }
>
> if (!ret)
> --
> 2.40.1
>
Reviewed-by: Chao Yu <daehojeong@google.com>
Thanks,
>
>
> _______________________________________________
> Linux-f2fs-devel mailing list
> Linux-f2fs-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [f2fs-dev] [PATCH] fsck.f2fs: fix to avoid using uninitialized buffer
2025-06-03 16:52 ` Daeho Jeong
@ 2025-06-03 16:54 ` Daeho Jeong
0 siblings, 0 replies; 3+ messages in thread
From: Daeho Jeong @ 2025-06-03 16:54 UTC (permalink / raw)
To: Chao Yu; +Cc: jaegeuk, Daeho Jeong, linux-f2fs-devel
On Tue, Jun 3, 2025 at 9:52 AM Daeho Jeong <daeho43@gmail.com> wrote:
>
> On Tue, Jun 3, 2025 at 12:29 AM Chao Yu via Linux-f2fs-devel
> <linux-f2fs-devel@lists.sourceforge.net> wrote:
> >
> > fsck.c: In function ‘chk_and_fix_wp_with_sit’:
> > fsck.c:3529:17: error: variable-sized object may not be initialized
> > 3529 | char buffer[F2FS_BLKSIZE] = {};
> > | ^~~~
> >
> > The reason is F2FS_BLKSIZE macro is defined w/ c.blksize, let's use
> > calloc() to allocate zeroed memory to fix this issue.
> >
> > Cc: Daeho Jeong <daehojeong@google.com>
> > Signed-off-by: Chao Yu <chao@kernel.org>
> > ---
> > fsck/fsck.c | 7 ++++++-
> > 1 file changed, 6 insertions(+), 1 deletion(-)
> >
> > diff --git a/fsck/fsck.c b/fsck/fsck.c
> > index 4d05e1b..bb39f8b 100644
> > --- a/fsck/fsck.c
> > +++ b/fsck/fsck.c
> > @@ -3526,7 +3526,7 @@ static int chk_and_fix_wp_with_sit(int UNUSED(i), void *blkzone, void *opaque)
> >
> > ret = f2fs_finish_zone(wpd->dev_index, blkz);
> > if (ret) {
> > - u8 buffer[F2FS_BLKSIZE] = {};
> > + u8 *buffer;
> > u64 blk_addr = wp_block;
> > u64 fill_sects = blk_zone_length(blkz) -
> > (blk_zone_wp_sector(blkz) - blk_zone_sector(blkz));
> > @@ -3534,6 +3534,9 @@ static int chk_and_fix_wp_with_sit(int UNUSED(i), void *blkzone, void *opaque)
> > struct seg_entry *se = get_seg_entry(sbi, wp_segno);
> > enum rw_hint whint = f2fs_io_type_to_rw_hint(se->type);
> >
> > + buffer = calloc(F2FS_BLKSIZE, 1);
> > + ASSERT(buffer);
> > +
> > printf("[FSCK] Finishing zone failed: %s\n", dev->path);
> > while (len--) {
> > ret = dev_fill_block(buffer, blk_addr++, whint);
> > @@ -3542,6 +3545,8 @@ static int chk_and_fix_wp_with_sit(int UNUSED(i), void *blkzone, void *opaque)
> > break;
> > }
> > }
> > +
> > + free(buffer);
> > }
> >
> > if (!ret)
> > --
> > 2.40.1
> >
>
> Reviewed-by: Chao Yu <daehojeong@google.com>
>
> Thanks,
Oops,
Reviewed-by: Daeho Jeong <daehojeong@google.com>
Thanks,
>
> >
> >
> > _______________________________________________
> > Linux-f2fs-devel mailing list
> > Linux-f2fs-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-06-03 16:54 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-03 7:26 [f2fs-dev] [PATCH] fsck.f2fs: fix to avoid using uninitialized buffer Chao Yu via Linux-f2fs-devel
2025-06-03 16:52 ` Daeho Jeong
2025-06-03 16:54 ` Daeho Jeong
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.