Currently, versions in f2fs_configuration have one more byte, so versions in f2fs_super_block may not end with '\0', which will cause errors while printing it in print_raw_sb_info(). Unify the length of versions to fix it.
Signed-off-by: Junling Zheng <zhengjunl...@huawei.com> --- include/f2fs_fs.h | 6 +++--- lib/libf2fs.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/f2fs_fs.h b/include/f2fs_fs.h index 1345e2d..e666076 100644 --- a/include/f2fs_fs.h +++ b/include/f2fs_fs.h @@ -270,9 +270,9 @@ struct f2fs_configuration { u_int64_t target_sectors; u_int32_t sectors_per_blk; u_int32_t blks_per_seg; - __u8 init_version[VERSION_LEN + 1]; - __u8 sb_version[VERSION_LEN + 1]; - __u8 version[VERSION_LEN + 1]; + __u8 init_version[VERSION_LEN]; + __u8 sb_version[VERSION_LEN]; + __u8 version[VERSION_LEN]; char *vol_label; int heap; int32_t fd, kd; diff --git a/lib/libf2fs.c b/lib/libf2fs.c index 706cc34..0a9436b 100644 --- a/lib/libf2fs.c +++ b/lib/libf2fs.c @@ -570,11 +570,11 @@ int f2fs_dev_is_umounted(struct f2fs_configuration *c) void get_kernel_version(__u8 *version) { int i; - for (i = 0; i < VERSION_LEN; i++) { + for (i = 0; i < VERSION_LEN - 1; i++) { if (version[i] == '\n') break; } - memset(version + i, 0, VERSION_LEN + 1 - i); + memset(version + i, 0, VERSION_LEN - i); } int f2fs_get_device_info(struct f2fs_configuration *c) -- 2.7.4 ------------------------------------------------------------------------------ _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel