On 07/29, Daeho Jeong wrote: > On Thu, Jul 25, 2024 at 11:41 AM Jaegeuk Kim <jaeg...@kernel.org> wrote: > > > > Signed-off-by: Jaegeuk Kim <jaeg...@kernel.org> > > --- > > fsck/inject.c | 28 +++++++++++++++------------- > > 1 file changed, 15 insertions(+), 13 deletions(-) > > > > diff --git a/fsck/inject.c b/fsck/inject.c > > index 2a21dae293f6..4ffdfd0f0b5d 100644 > > --- a/fsck/inject.c > > +++ b/fsck/inject.c > > @@ -211,6 +211,8 @@ int inject_parse_options(int argc, char *argv[], struct > > inject_option *opt) > > > > while ((o = getopt_long(argc, argv, option_string, > > long_opt, NULL)) != EOF) { > > + long nid, blk; > > + > > switch (o) { > > case 1: > > c.dry_run = 1; > > @@ -265,10 +267,10 @@ int inject_parse_options(int argc, char *argv[], > > struct inject_option *opt) > > MSG(0, "Info: inject nat pack %s\n", > > pack[opt->nat]); > > break; > > case 9: > > - opt->nid = strtol(optarg, &endptr, 0); > > - if (opt->nid == LONG_MAX || opt->nid == LONG_MIN || > > - *endptr != '\0') > > + nid = strtol(optarg, &endptr, 0); > > + if (nid >= UINT_MAX || *endptr != '\0') > > Do we support a negative value for nid?
unsigned int? > > > return -ERANGE; > > + opt->nid = nid; > > MSG(0, "Info: inject nid %u : 0x%x\n", opt->nid, > > opt->nid); > > break; > > case 10: > > @@ -280,10 +282,10 @@ int inject_parse_options(int argc, char *argv[], > > struct inject_option *opt) > > MSG(0, "Info: inject sit pack %s\n", > > pack[opt->sit]); > > break; > > case 11: > > - opt->blk = strtol(optarg, &endptr, 0); > > - if (opt->blk == LONG_MAX || opt->blk == LONG_MIN || > > - *endptr != '\0') > > + blk = strtol(optarg, &endptr, 0); > > + if (blk >= UINT_MAX || *endptr != '\0') > > ditto > > > return -ERANGE; > > + opt->blk = blk; > > MSG(0, "Info: inject blkaddr %u : 0x%x\n", > > opt->blk, opt->blk); > > break; > > case 12: > > @@ -432,7 +434,7 @@ static int inject_cp(struct f2fs_sb_info *sbi, struct > > inject_option *opt) > > } > > > > if (!strcmp(opt->mb, "checkpoint_ver")) { > > - MSG(0, "Info: inject checkpoint_ver of cp %d: 0x%llx -> > > 0x%lx\n", > > + MSG(0, "Info: inject checkpoint_ver of cp %d: 0x%llx -> > > 0x%"PRIx64"\n", > > opt->cp, get_cp(checkpoint_ver), (u64)opt->val); > > set_cp(checkpoint_ver, (u64)opt->val); > > } else if (!strcmp(opt->mb, "ckpt_flags")) { > > @@ -510,7 +512,7 @@ static int inject_nat(struct f2fs_sb_info *sbi, struct > > inject_option *opt) > > int ret; > > > > if (!IS_VALID_NID(sbi, opt->nid)) { > > - ERR_MSG("Invalid nid %u range [%u:%lu]\n", opt->nid, 0, > > + ERR_MSG("Invalid nid %u range [%u:%"PRIu64"]\n", opt->nid, > > 0, > > NAT_ENTRY_PER_BLOCK * > > ((get_sb(segment_count_nat) << 1) << > > sbi->log_blocks_per_seg)); > > @@ -627,7 +629,7 @@ static int inject_sit(struct f2fs_sb_info *sbi, struct > > inject_option *opt) > > sit->valid_map[opt->idx] = (u8)opt->val; > > } else if (!strcmp(opt->mb, "mtime")) { > > MSG(0, "Info: inject sit entry mtime of block 0x%x " > > - "in pack %d: %lu -> %lu\n", opt->blk, opt->sit, > > + "in pack %d: %"PRIu64" -> %"PRIu64"\n", opt->blk, > > opt->sit, > > le64_to_cpu(sit->mtime), (u64)opt->val); > > sit->mtime = cpu_to_le64((u64)opt->val); > > } else { > > @@ -752,11 +754,11 @@ static int inject_inode(struct f2fs_sb_info *sbi, > > struct f2fs_node *node, > > opt->nid, le32_to_cpu(inode->i_links), (u32)opt->val); > > inode->i_links = cpu_to_le32((u32)opt->val); > > } else if (!strcmp(opt->mb, "i_size")) { > > - MSG(0, "Info: inject inode i_size of nid %u: %lu -> %lu\n", > > + MSG(0, "Info: inject inode i_size of nid %u: %"PRIu64" -> > > %"PRIu64"\n", > > opt->nid, le64_to_cpu(inode->i_size), (u64)opt->val); > > inode->i_size = cpu_to_le64((u64)opt->val); > > } else if (!strcmp(opt->mb, "i_blocks")) { > > - MSG(0, "Info: inject inode i_blocks of nid %u: %lu -> > > %lu\n", > > + MSG(0, "Info: inject inode i_blocks of nid %u: %"PRIu64" -> > > %"PRIu64"\n", > > opt->nid, le64_to_cpu(inode->i_blocks), (u64)opt->val); > > inode->i_blocks = cpu_to_le64((u64)opt->val); > > } else if (!strcmp(opt->mb, "i_extra_isize")) { > > @@ -835,7 +837,7 @@ static int inject_node(struct f2fs_sb_info *sbi, struct > > inject_option *opt) > > int ret; > > > > if (!IS_VALID_NID(sbi, opt->nid)) { > > - ERR_MSG("Invalid nid %u range [%u:%lu]\n", opt->nid, 0, > > + ERR_MSG("Invalid nid %u range [%u:%"PRIu64"]\n", opt->nid, > > 0, > > NAT_ENTRY_PER_BLOCK * > > ((get_sb(segment_count_nat) << 1) << > > sbi->log_blocks_per_seg)); > > @@ -865,7 +867,7 @@ static int inject_node(struct f2fs_sb_info *sbi, struct > > inject_option *opt) > > footer->flag = cpu_to_le32((u32)opt->val); > > } else if (!strcmp(opt->mb, "cp_ver")) { > > MSG(0, "Info: inject node footer cp_ver of nid %u: " > > - "0x%lx -> 0x%lx\n", opt->nid, > > le64_to_cpu(footer->cp_ver), > > + "0x%"PRIx64" -> 0x%"PRIx64"\n", opt->nid, > > le64_to_cpu(footer->cp_ver), > > (u64)opt->val); > > footer->cp_ver = cpu_to_le64((u64)opt->val); > > } else if (!strcmp(opt->mb, "next_blkaddr")) { > > -- > > 2.46.0.rc1.232.g9752f9e123-goog > > > > > > > > _______________________________________________ > > 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